Define interface members on the global object directly (fixes #4593)

This commit is contained in:
Anthony Ramine 2016-08-25 12:51:52 +02:00
parent 0729000b56
commit 6da56f7e67
11 changed files with 63 additions and 905 deletions

View file

@ -2498,7 +2498,7 @@ class CGWrapGlobalMethod(CGAbstractMethod):
"""
Class that generates the FooBinding::Wrap function for global interfaces.
"""
def __init__(self, descriptor):
def __init__(self, descriptor, properties):
assert not descriptor.interface.isCallback()
assert descriptor.isGlobal()
args = [Argument('*mut JSContext', 'cx'),
@ -2506,9 +2506,22 @@ class CGWrapGlobalMethod(CGAbstractMethod):
retval = 'Root<%s>' % descriptor.concreteType
CGAbstractMethod.__init__(self, descriptor, 'Wrap', retval, args,
pub=True, unsafe=True)
self.properties = properties
def definition_body(self):
unforgeable = CopyUnforgeablePropertiesToInstance(self.descriptor)
values = {
"unforgeable": CopyUnforgeablePropertiesToInstance(self.descriptor)
}
pairs = [
("define_guarded_properties", self.properties.attrs),
("define_guarded_methods", self.properties.methods),
("define_guarded_constants", self.properties.consts)
]
members = ["%s(cx, obj.handle(), %s);" % (function, array.variableName())
for (function, array) in pairs if array.length() > 0]
values["members"] = "\n".join(members)
return CGGeneric("""\
let raw = Box::into_raw(object);
let _rt = RootedTraceable::new(&*raw);
@ -2529,10 +2542,12 @@ rooted!(in(cx) let mut proto = ptr::null_mut());
GetProtoObject(cx, obj.handle(), proto.handle_mut());
JS_SplicePrototype(cx, obj.handle(), proto.handle());
%(copyUnforgeable)s
%(members)s
%(unforgeable)s
Root::from_ref(&*raw)\
""" % {'copyUnforgeable': unforgeable})
""" % values)
class CGIDLInterface(CGThing):
@ -2676,6 +2691,18 @@ assert!(!prototype_proto.is_null());""" % getPrototypeProto)]
else:
properties[arrayName] = "&[]"
if self.descriptor.isGlobal():
assert not self.haveUnscopables
proto_properties = {
"attrs": "&[]",
"consts": "&[]",
"id": name,
"methods": "&[]",
"unscopables": "&[]",
}
else:
proto_properties = properties
code.append(CGGeneric("""
rooted!(in(cx) let mut prototype = ptr::null_mut());
create_interface_prototype_object(cx,
@ -2692,7 +2719,7 @@ assert!((*cache)[PrototypeList::ID::%(id)s as usize].is_null());
<*mut JSObject>::post_barrier((*cache).as_mut_ptr().offset(PrototypeList::ID::%(id)s as isize),
ptr::null_mut(),
prototype.get());
""" % properties))
""" % proto_properties))
if self.descriptor.interface.hasInterfaceObject():
properties["name"] = str_to_const_array(name)
@ -5299,8 +5326,8 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
'dom::bindings::interface::{NonCallbackInterfaceObjectClass, NonNullJSNative}',
'dom::bindings::interface::{create_callback_interface_object, create_global_object}',
'dom::bindings::interface::{create_interface_prototype_object, create_named_constructors}',
'dom::bindings::interface::{create_noncallback_interface_object, define_guarded_methods}',
'dom::bindings::interface::{define_guarded_properties, is_exposed_in}',
'dom::bindings::interface::{create_noncallback_interface_object, define_guarded_constants}',
'dom::bindings::interface::{define_guarded_methods, define_guarded_properties, is_exposed_in}',
'dom::bindings::interface::ConstantVal::{IntVal, UintVal}',
'dom::bindings::iterable::{IteratorType, Iterable}',
'dom::bindings::js::{JS, Root, RootedReference}',
@ -5450,6 +5477,8 @@ class CGDescriptor(CGThing):
if descriptor.proxy:
cgThings.append(CGDefineProxyHandler(descriptor))
properties = PropertyArrays(descriptor)
if descriptor.concrete:
if descriptor.proxy:
# cgThings.append(CGProxyIsProxy(descriptor))
@ -5480,7 +5509,7 @@ class CGDescriptor(CGThing):
pass
if descriptor.isGlobal():
cgThings.append(CGWrapGlobalMethod(descriptor))
cgThings.append(CGWrapGlobalMethod(descriptor, properties))
else:
cgThings.append(CGWrapMethod(descriptor))
reexports.append('Wrap')
@ -5505,7 +5534,6 @@ class CGDescriptor(CGThing):
if descriptor.weakReferenceable:
cgThings.append(CGWeakReferenceableTrait(descriptor))
properties = PropertyArrays(descriptor)
cgThings.append(CGGeneric(str(properties)))
cgThings.append(CGCreateInterfaceObjectsMethod(descriptor, properties, haveUnscopables))

View file

@ -257,11 +257,7 @@ pub unsafe fn create_callback_interface_object(
assert!(!constants.is_empty());
rval.set(JS_NewObject(cx, ptr::null()));
assert!(!rval.ptr.is_null());
for guard in constants {
if let Some(specs) = guard.expose(cx, rval.handle()) {
define_constants(cx, rval.handle(), specs);
}
}
define_guarded_constants(cx, rval.handle(), constants);
define_name(cx, rval.handle(), name);
define_on_global_object(cx, global, name, rval.handle());
}
@ -421,11 +417,7 @@ unsafe fn create_object(
assert!(!rval.ptr.is_null());
define_guarded_methods(cx, rval.handle(), methods);
define_guarded_properties(cx, rval.handle(), properties);
for guard in constants {
if let Some(specs) = guard.expose(cx, rval.handle()) {
define_constants(cx, rval.handle(), specs);
}
}
define_guarded_constants(cx, rval.handle(), constants);
}
unsafe fn create_unscopable_object(
@ -444,6 +436,18 @@ unsafe fn create_unscopable_object(
}
}
/// Conditionally define constants on an object.
pub unsafe fn define_guarded_constants(
cx: *mut JSContext,
obj: HandleObject,
constants: &[Guard<&[ConstantSpec]>]) {
for guard in constants {
if let Some(specs) = guard.expose(cx, obj) {
define_constants(cx, obj, specs);
}
}
}
/// Conditionally define methods on an object.
pub unsafe fn define_guarded_methods(
cx: *mut JSContext,

View file

@ -75,9 +75,6 @@
[SVGElement interface: attribute style]
expected: FAIL
[Window interface: operation getComputedStyle(Element,DOMString)]
expected: FAIL
[MediaList interface: existence and properties of interface object]
expected: FAIL

View file

@ -6,6 +6,3 @@
[window_functions]
expected: FAIL
[window_properties]
expected: FAIL

View file

@ -1,8 +1,5 @@
[window-properties.html]
type: testharness
[Window method: close]
expected: FAIL
[Window method: stop]
expected: FAIL
@ -15,9 +12,6 @@
[Window method: open]
expected: FAIL
[Window method: alert]
expected: FAIL
[Window method: confirm]
expected: FAIL
@ -27,276 +21,24 @@
[Window method: print]
expected: FAIL
[Window method: postMessage]
expected: FAIL
[Window method: btoa]
expected: FAIL
[Window method: atob]
expected: FAIL
[Window method: setTimeout]
expected: FAIL
[Window method: clearTimeout]
expected: FAIL
[Window method: setInterval]
expected: FAIL
[Window method: clearInterval]
expected: FAIL
[Window method: getSelection]
expected: FAIL
[Window method: getComputedStyle]
expected: FAIL
[Window method: matchMedia]
expected: FAIL
[Window method: scroll]
expected: FAIL
[Window method: scrollTo]
expected: FAIL
[Window method: scrollBy]
expected: FAIL
[Window readonly attribute: history]
expected: FAIL
[Window readonly attribute: frameElement]
expected: FAIL
[Window readonly attribute: navigator]
expected: FAIL
[Window readonly attribute: applicationCache]
expected: FAIL
[Window readonly attribute: sessionStorage]
expected: FAIL
[Window readonly attribute: localStorage]
expected: FAIL
[Window attribute: name]
expected: FAIL
[Window attribute: status]
expected: FAIL
[Window attribute: opener]
expected: FAIL
[Window attribute: onabort]
expected: FAIL
[Window attribute: onafterprint]
expected: FAIL
[Window attribute: onbeforeprint]
expected: FAIL
[Window attribute: onbeforeunload]
expected: FAIL
[Window attribute: onblur]
expected: FAIL
[Window attribute: oncancel]
expected: FAIL
[Window attribute: oncanplay]
expected: FAIL
[Window attribute: oncanplaythrough]
expected: FAIL
[Window attribute: onchange]
expected: FAIL
[Window attribute: onclick]
expected: FAIL
[Window attribute: onclose]
expected: FAIL
[Window attribute: oncontextmenu]
expected: FAIL
[Window attribute: oncuechange]
expected: FAIL
[Window attribute: ondblclick]
expected: FAIL
[Window attribute: ondrag]
expected: FAIL
[Window attribute: ondragend]
expected: FAIL
[Window attribute: ondragenter]
expected: FAIL
[Window attribute: ondragleave]
expected: FAIL
[Window attribute: ondragover]
expected: FAIL
[Window attribute: ondragstart]
expected: FAIL
[Window attribute: ondrop]
expected: FAIL
[Window attribute: ondurationchange]
expected: FAIL
[Window attribute: onemptied]
expected: FAIL
[Window attribute: onended]
expected: FAIL
[Window attribute: onerror]
expected: FAIL
[Window attribute: onfocus]
expected: FAIL
[Window attribute: onhashchange]
expected: FAIL
[Window attribute: oninput]
expected: FAIL
[Window attribute: oninvalid]
expected: FAIL
[Window attribute: onkeydown]
expected: FAIL
[Window attribute: onkeypress]
expected: FAIL
[Window attribute: onkeyup]
expected: FAIL
[Window attribute: onload]
expected: FAIL
[Window attribute: onloadeddata]
expected: FAIL
[Window attribute: onloadedmetadata]
expected: FAIL
[Window attribute: onloadstart]
expected: FAIL
[Window attribute: onmessage]
expected: FAIL
[Window attribute: onmousedown]
expected: FAIL
[Window attribute: onmousemove]
expected: FAIL
[Window attribute: onmouseout]
expected: FAIL
[Window attribute: onmouseover]
expected: FAIL
[Window attribute: onmouseup]
expected: FAIL
[Window attribute: onmousewheel]
expected: FAIL
[Window attribute: onoffline]
expected: FAIL
[Window attribute: ononline]
expected: FAIL
[Window attribute: onpause]
expected: FAIL
[Window attribute: onplay]
expected: FAIL
[Window attribute: onplaying]
expected: FAIL
[Window attribute: onpagehide]
expected: FAIL
[Window attribute: onpageshow]
expected: FAIL
[Window attribute: onpopstate]
expected: FAIL
[Window attribute: onprogress]
expected: FAIL
[Window attribute: onratechange]
expected: FAIL
[Window attribute: onreset]
expected: FAIL
[Window attribute: onresize]
expected: FAIL
[Window attribute: onscroll]
expected: FAIL
[Window attribute: onseeked]
expected: FAIL
[Window attribute: onseeking]
expected: FAIL
[Window attribute: onselect]
expected: FAIL
[Window attribute: onshow]
expected: FAIL
[Window attribute: onstalled]
expected: FAIL
[Window attribute: onstorage]
expected: FAIL
[Window attribute: onsubmit]
expected: FAIL
[Window attribute: onsuspend]
expected: FAIL
[Window attribute: ontimeupdate]
expected: FAIL
[Window attribute: onunload]
expected: FAIL
[Window attribute: onvolumechange]
expected: FAIL
[Window attribute: onwaiting]
expected: FAIL
[Window unforgeable attribute: location]
expected: FAIL

View file

@ -4917,9 +4917,6 @@
[Window interface: attribute name]
expected: FAIL
[Window interface: attribute history]
expected: FAIL
[Window interface: attribute locationbar]
expected: FAIL
@ -4938,12 +4935,6 @@
[Window interface: attribute toolbar]
expected: FAIL
[Window interface: attribute status]
expected: FAIL
[Window interface: operation close()]
expected: FAIL
[Window interface: attribute closed]
expected: FAIL
@ -4968,24 +4959,15 @@
[Window interface: attribute parent]
expected: FAIL
[Window interface: attribute frameElement]
expected: FAIL
[Window interface: operation open(DOMString,DOMString,DOMString,boolean)]
expected: FAIL
[Window interface: attribute navigator]
expected: FAIL
[Window interface: attribute external]
expected: FAIL
[Window interface: attribute applicationCache]
expected: FAIL
[Window interface: operation alert()]
expected: FAIL
[Window interface: operation confirm(DOMString)]
expected: FAIL
@ -4998,288 +4980,27 @@
[Window interface: operation showModalDialog(DOMString,any)]
expected: FAIL
[Window interface: operation postMessage(any,DOMString,[object Object\])]
expected: FAIL
[Window interface: operation captureEvents()]
expected: FAIL
[Window interface: operation releaseEvents()]
expected: FAIL
[Window interface: attribute onabort]
expected: FAIL
[Window interface: attribute onautocomplete]
expected: FAIL
[Window interface: attribute onautocompleteerror]
expected: FAIL
[Window interface: attribute onblur]
expected: FAIL
[Window interface: attribute oncancel]
expected: FAIL
[Window interface: attribute oncanplay]
expected: FAIL
[Window interface: attribute oncanplaythrough]
expected: FAIL
[Window interface: attribute onchange]
expected: FAIL
[Window interface: attribute onclick]
expected: FAIL
[Window interface: attribute onclose]
expected: FAIL
[Window interface: attribute oncontextmenu]
expected: FAIL
[Window interface: attribute oncuechange]
expected: FAIL
[Window interface: attribute ondblclick]
expected: FAIL
[Window interface: attribute ondrag]
expected: FAIL
[Window interface: attribute ondragend]
expected: FAIL
[Window interface: attribute ondragenter]
expected: FAIL
[Window interface: attribute ondragexit]
expected: FAIL
[Window interface: attribute ondragleave]
expected: FAIL
[Window interface: attribute ondragover]
expected: FAIL
[Window interface: attribute ondragstart]
expected: FAIL
[Window interface: attribute ondrop]
expected: FAIL
[Window interface: attribute ondurationchange]
expected: FAIL
[Window interface: attribute onemptied]
expected: FAIL
[Window interface: attribute onended]
expected: FAIL
[Window interface: attribute onerror]
expected: FAIL
[Window interface: attribute onfocus]
expected: FAIL
[Window interface: attribute oninput]
expected: FAIL
[Window interface: attribute oninvalid]
expected: FAIL
[Window interface: attribute onkeydown]
expected: FAIL
[Window interface: attribute onkeypress]
expected: FAIL
[Window interface: attribute onkeyup]
expected: FAIL
[Window interface: attribute onload]
expected: FAIL
[Window interface: attribute onloadeddata]
expected: FAIL
[Window interface: attribute onloadedmetadata]
expected: FAIL
[Window interface: attribute onloadstart]
expected: FAIL
[Window interface: attribute onmousedown]
expected: FAIL
[Window interface: attribute onmouseenter]
expected: FAIL
[Window interface: attribute onmouseleave]
expected: FAIL
[Window interface: attribute onmousemove]
expected: FAIL
[Window interface: attribute onmouseout]
expected: FAIL
[Window interface: attribute onmouseover]
expected: FAIL
[Window interface: attribute onmouseup]
expected: FAIL
[Window interface: attribute onmousewheel]
expected: FAIL
[Window interface: attribute onpause]
expected: FAIL
[Window interface: attribute onplay]
expected: FAIL
[Window interface: attribute onplaying]
expected: FAIL
[Window interface: attribute onprogress]
expected: FAIL
[Window interface: attribute onratechange]
expected: FAIL
[Window interface: attribute onreset]
expected: FAIL
[Window interface: attribute onresize]
expected: FAIL
[Window interface: attribute onscroll]
expected: FAIL
[Window interface: attribute onseeked]
expected: FAIL
[Window interface: attribute onseeking]
expected: FAIL
[Window interface: attribute onselect]
expected: FAIL
[Window interface: attribute onshow]
expected: FAIL
[Window interface: attribute onsort]
expected: FAIL
[Window interface: attribute onstalled]
expected: FAIL
[Window interface: attribute onsubmit]
expected: FAIL
[Window interface: attribute onsuspend]
expected: FAIL
[Window interface: attribute ontimeupdate]
expected: FAIL
[Window interface: attribute ontoggle]
expected: FAIL
[Window interface: attribute onvolumechange]
expected: FAIL
[Window interface: attribute onwaiting]
expected: FAIL
[Window interface: attribute onafterprint]
expected: FAIL
[Window interface: attribute onbeforeprint]
expected: FAIL
[Window interface: attribute onbeforeunload]
expected: FAIL
[Window interface: attribute onhashchange]
expected: FAIL
[Window interface: attribute onlanguagechange]
expected: FAIL
[Window interface: attribute onmessage]
expected: FAIL
[Window interface: attribute onoffline]
expected: FAIL
[Window interface: attribute ononline]
expected: FAIL
[Window interface: attribute onpagehide]
expected: FAIL
[Window interface: attribute onpageshow]
expected: FAIL
[Window interface: attribute onpopstate]
expected: FAIL
[Window interface: attribute onstorage]
expected: FAIL
[Window interface: attribute onunload]
expected: FAIL
[Window interface: operation btoa(DOMString)]
expected: FAIL
[Window interface: operation atob(DOMString)]
expected: FAIL
[Window interface: operation setTimeout(Function,long,any)]
expected: FAIL
[Window interface: operation setTimeout(DOMString,long,any)]
expected: FAIL
[Window interface: operation clearTimeout(long)]
expected: FAIL
[Window interface: operation setInterval(Function,long,any)]
expected: FAIL
[Window interface: operation setInterval(DOMString,long,any)]
expected: FAIL
[Window interface: operation clearInterval(long)]
expected: FAIL
[Window interface: operation createImageBitmap(ImageBitmapSource,long,long,long,long)]
expected: FAIL
[Window interface: attribute sessionStorage]
expected: FAIL
[Window interface: attribute localStorage]
expected: FAIL
[Window interface: window must inherit property "self" with the proper type (1)]
expected: FAIL
[Window interface: window must inherit property "name" with the proper type (3)]
expected: FAIL
[Window interface: window must have own property "location"]
expected: FAIL
[Window interface: window must inherit property "history" with the proper type (5)]
expected: FAIL
[Window interface: window must inherit property "locationbar" with the proper type (6)]
expected: FAIL
@ -5298,9 +5019,6 @@
[Window interface: window must inherit property "toolbar" with the proper type (11)]
expected: FAIL
[Window interface: window must inherit property "status" with the proper type (12)]
expected: FAIL
[Window interface: window must inherit property "closed" with the proper type (14)]
expected: FAIL
@ -5313,18 +5031,12 @@
[Window interface: window must inherit property "blur" with the proper type (17)]
expected: FAIL
[Window interface: window must inherit property "frames" with the proper type (18)]
expected: FAIL
[Window interface: window must inherit property "length" with the proper type (19)]
expected: FAIL
[Window interface: window must inherit property "opener" with the proper type (21)]
expected: FAIL
[Window interface: window must inherit property "parent" with the proper type (22)]
expected: FAIL
[Window interface: window must inherit property "open" with the proper type (24)]
expected: FAIL
@ -5358,225 +5070,18 @@
[Window interface: calling showModalDialog(DOMString,any) on window with too few arguments must throw TypeError]
expected: FAIL
[Window interface: window must inherit property "postMessage" with the proper type (35)]
expected: FAIL
[Window interface: calling postMessage(any,DOMString,[object Object\]) on window with too few arguments must throw TypeError]
expected: FAIL
[Window interface: window must inherit property "captureEvents" with the proper type (36)]
expected: FAIL
[Window interface: window must inherit property "releaseEvents" with the proper type (37)]
expected: FAIL
[Window interface: window must inherit property "onabort" with the proper type (38)]
expected: FAIL
[Window interface: window must inherit property "onautocomplete" with the proper type (39)]
expected: FAIL
[Window interface: window must inherit property "onautocompleteerror" with the proper type (40)]
expected: FAIL
[Window interface: window must inherit property "onblur" with the proper type (41)]
expected: FAIL
[Window interface: window must inherit property "oncancel" with the proper type (42)]
expected: FAIL
[Window interface: window must inherit property "oncanplay" with the proper type (43)]
expected: FAIL
[Window interface: window must inherit property "oncanplaythrough" with the proper type (44)]
expected: FAIL
[Window interface: window must inherit property "onclose" with the proper type (47)]
expected: FAIL
[Window interface: window must inherit property "oncontextmenu" with the proper type (48)]
expected: FAIL
[Window interface: window must inherit property "oncuechange" with the proper type (49)]
expected: FAIL
[Window interface: window must inherit property "ondblclick" with the proper type (50)]
expected: FAIL
[Window interface: window must inherit property "ondrag" with the proper type (51)]
expected: FAIL
[Window interface: window must inherit property "ondragend" with the proper type (52)]
expected: FAIL
[Window interface: window must inherit property "ondragenter" with the proper type (53)]
expected: FAIL
[Window interface: window must inherit property "ondragexit" with the proper type (54)]
expected: FAIL
[Window interface: window must inherit property "ondragleave" with the proper type (55)]
expected: FAIL
[Window interface: window must inherit property "ondragover" with the proper type (56)]
expected: FAIL
[Window interface: window must inherit property "ondragstart" with the proper type (57)]
expected: FAIL
[Window interface: window must inherit property "ondrop" with the proper type (58)]
expected: FAIL
[Window interface: window must inherit property "ondurationchange" with the proper type (59)]
expected: FAIL
[Window interface: window must inherit property "onemptied" with the proper type (60)]
expected: FAIL
[Window interface: window must inherit property "onended" with the proper type (61)]
expected: FAIL
[Window interface: window must inherit property "onfocus" with the proper type (63)]
expected: FAIL
[Window interface: window must inherit property "oninvalid" with the proper type (65)]
expected: FAIL
[Window interface: window must inherit property "onkeydown" with the proper type (66)]
expected: FAIL
[Window interface: window must inherit property "onkeypress" with the proper type (67)]
expected: FAIL
[Window interface: window must inherit property "onkeyup" with the proper type (68)]
expected: FAIL
[Window interface: window must inherit property "onloadeddata" with the proper type (70)]
expected: FAIL
[Window interface: window must inherit property "onloadedmetadata" with the proper type (71)]
expected: FAIL
[Window interface: window must inherit property "onloadstart" with the proper type (72)]
expected: FAIL
[Window interface: window must inherit property "onmousedown" with the proper type (73)]
expected: FAIL
[Window interface: window must inherit property "onmouseenter" with the proper type (74)]
expected: FAIL
[Window interface: window must inherit property "onmouseleave" with the proper type (75)]
expected: FAIL
[Window interface: window must inherit property "onmousemove" with the proper type (76)]
expected: FAIL
[Window interface: window must inherit property "onmouseout" with the proper type (77)]
expected: FAIL
[Window interface: window must inherit property "onmouseover" with the proper type (78)]
expected: FAIL
[Window interface: window must inherit property "onmouseup" with the proper type (79)]
expected: FAIL
[Window interface: window must inherit property "onmousewheel" with the proper type (80)]
expected: FAIL
[Window interface: window must inherit property "onpause" with the proper type (81)]
expected: FAIL
[Window interface: window must inherit property "onplay" with the proper type (82)]
expected: FAIL
[Window interface: window must inherit property "onplaying" with the proper type (83)]
expected: FAIL
[Window interface: window must inherit property "onprogress" with the proper type (84)]
expected: FAIL
[Window interface: window must inherit property "onratechange" with the proper type (85)]
expected: FAIL
[Window interface: window must inherit property "onreset" with the proper type (86)]
expected: FAIL
[Window interface: window must inherit property "onresize" with the proper type (87)]
expected: FAIL
[Window interface: window must inherit property "onscroll" with the proper type (88)]
expected: FAIL
[Window interface: window must inherit property "onseeked" with the proper type (89)]
expected: FAIL
[Window interface: window must inherit property "onseeking" with the proper type (90)]
expected: FAIL
[Window interface: window must inherit property "onselect" with the proper type (91)]
expected: FAIL
[Window interface: window must inherit property "onshow" with the proper type (92)]
expected: FAIL
[Window interface: window must inherit property "onsort" with the proper type (93)]
expected: FAIL
[Window interface: window must inherit property "onstalled" with the proper type (94)]
expected: FAIL
[Window interface: window must inherit property "onsuspend" with the proper type (96)]
expected: FAIL
[Window interface: window must inherit property "ontimeupdate" with the proper type (97)]
expected: FAIL
[Window interface: window must inherit property "ontoggle" with the proper type (98)]
expected: FAIL
[Window interface: window must inherit property "onvolumechange" with the proper type (99)]
expected: FAIL
[Window interface: window must inherit property "onwaiting" with the proper type (100)]
expected: FAIL
[Window interface: window must inherit property "onafterprint" with the proper type (101)]
expected: FAIL
[Window interface: window must inherit property "onbeforeprint" with the proper type (102)]
expected: FAIL
[Window interface: window must inherit property "onbeforeunload" with the proper type (103)]
expected: FAIL
[Window interface: window must inherit property "onhashchange" with the proper type (104)]
expected: FAIL
[Window interface: window must inherit property "onlanguagechange" with the proper type (105)]
expected: FAIL
[Window interface: window must inherit property "onmessage" with the proper type (106)]
expected: FAIL
[Window interface: window must inherit property "onoffline" with the proper type (107)]
expected: FAIL
[Window interface: window must inherit property "ononline" with the proper type (108)]
expected: FAIL
[Window interface: window must inherit property "onpagehide" with the proper type (109)]
expected: FAIL
[Window interface: window must inherit property "onpageshow" with the proper type (110)]
expected: FAIL
[Window interface: window must inherit property "onpopstate" with the proper type (111)]
expected: FAIL
[Window interface: window must inherit property "onstorage" with the proper type (112)]
expected: FAIL
[Window interface: window must inherit property "createImageBitmap" with the proper type (122)]
expected: FAIL
@ -6354,93 +5859,6 @@
[HTMLDirectoryElement interface: document.createElement("dir") must inherit property "compact" with the proper type (0)]
expected: FAIL
[Window interface: window must inherit property "close" with the proper type (13)]
expected: FAIL
[Window interface: window must inherit property "frameElement" with the proper type (23)]
expected: FAIL
[Window interface: window must inherit property "navigator" with the proper type (27)]
expected: FAIL
[Window interface: window must inherit property "alert" with the proper type (30)]
expected: FAIL
[Window interface: window must inherit property "onchange" with the proper type (45)]
expected: FAIL
[Window interface: window must inherit property "onclick" with the proper type (46)]
expected: FAIL
[Window interface: window must inherit property "onerror" with the proper type (62)]
expected: FAIL
[Window interface: window must inherit property "oninput" with the proper type (64)]
expected: FAIL
[Window interface: window must inherit property "onload" with the proper type (69)]
expected: FAIL
[Window interface: window must inherit property "onsubmit" with the proper type (95)]
expected: FAIL
[Window interface: window must inherit property "onunload" with the proper type (113)]
expected: FAIL
[Window interface: window must inherit property "btoa" with the proper type (114)]
expected: FAIL
[Window interface: calling btoa(DOMString) on window with too few arguments must throw TypeError]
expected: FAIL
[Window interface: window must inherit property "atob" with the proper type (115)]
expected: FAIL
[Window interface: calling atob(DOMString) on window with too few arguments must throw TypeError]
expected: FAIL
[Window interface: window must inherit property "setTimeout" with the proper type (116)]
expected: FAIL
[Window interface: calling setTimeout(Function,long,any) on window with too few arguments must throw TypeError]
expected: FAIL
[Window interface: window must inherit property "setTimeout" with the proper type (117)]
expected: FAIL
[Window interface: calling setTimeout(DOMString,long,any) on window with too few arguments must throw TypeError]
expected: FAIL
[Window interface: window must inherit property "clearTimeout" with the proper type (118)]
expected: FAIL
[Window interface: calling clearTimeout(long) on window with too few arguments must throw TypeError]
expected: FAIL
[Window interface: window must inherit property "setInterval" with the proper type (119)]
expected: FAIL
[Window interface: calling setInterval(Function,long,any) on window with too few arguments must throw TypeError]
expected: FAIL
[Window interface: window must inherit property "setInterval" with the proper type (120)]
expected: FAIL
[Window interface: calling setInterval(DOMString,long,any) on window with too few arguments must throw TypeError]
expected: FAIL
[Window interface: window must inherit property "clearInterval" with the proper type (121)]
expected: FAIL
[Window interface: calling clearInterval(long) on window with too few arguments must throw TypeError]
expected: FAIL
[Window interface: window must inherit property "sessionStorage" with the proper type (123)]
expected: FAIL
[Window interface: window must inherit property "localStorage" with the proper type (124)]
expected: FAIL
[Location interface: window.location must have own property "replace"]
expected: FAIL

View file

@ -1,20 +0,0 @@
[idlharness.html]
type: testharness
[Window interface: operation requestAnimationFrame(FrameRequestCallback)]
expected: FAIL
[Window interface: operation cancelAnimationFrame(long)]
expected: FAIL
[Window interface: window must inherit property "requestAnimationFrame" with the proper type (0)]
expected: FAIL
[Window interface: calling requestAnimationFrame(FrameRequestCallback) on window with too few arguments must throw TypeError]
expected: FAIL
[Window interface: window must inherit property "cancelAnimationFrame" with the proper type (1)]
expected: FAIL
[Window interface: calling cancelAnimationFrame(long) on window with too few arguments must throw TypeError]
expected: FAIL

View file

@ -3,9 +3,6 @@
[Window interface: attribute performance]
expected: FAIL
[Window interface: window must inherit property "performance" with the proper type (0)]
expected: FAIL
[PerformanceTiming interface: attribute unloadEventStart]
expected: FAIL

View file

@ -0,0 +1,9 @@
[test_readwrite.html]
type: testharness
bug: https://github.com/servo/servo/issues/13033
[window.performance is read/write]
expected: FAIL
[var performance is read/write]
expected: FAIL

View file

@ -1,8 +0,0 @@
[idlharness.html]
type: testharness
[Window interface: attribute localStorage]
expected: FAIL
[Window interface: attribute sessionStorage]
expected: FAIL

View file

@ -45,15 +45,6 @@
[WorkerLocation interface: self.location must inherit property "origin" with the proper type (1)]
expected: FAIL
[DedicatedWorkerGlobalScope interface: self must inherit property "postMessage" with the proper type (0)]
expected: FAIL
[DedicatedWorkerGlobalScope interface: calling postMessage(any,[object Object\]) on self with too few arguments must throw TypeError]
expected: FAIL
[DedicatedWorkerGlobalScope interface: self must inherit property "onmessage" with the proper type (1)]
expected: FAIL
[WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type (7)]
expected: FAIL
@ -75,3 +66,6 @@
[WorkerLocation interface: existence and properties of interface object]
expected: FAIL
[WorkerGlobalScope interface: self must inherit property "close" with the proper type (2)]
expected: FAIL