mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
Improve support of limited unsigned long attributes
This commit is contained in:
parent
15c4372a8b
commit
fedad2af1f
15 changed files with 106 additions and 483 deletions
|
@ -54,8 +54,25 @@ impl AttrValue {
|
|||
AttrValue::TokenList(tokens, atoms)
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#reflecting-content-attributes-in-idl-attributes:idl-unsigned-long
|
||||
pub fn from_u32(string: DOMString, default: u32) -> AttrValue {
|
||||
let result = parse_unsigned_integer(string.chars()).unwrap_or(default);
|
||||
let result = if result > 2147483647 {
|
||||
default
|
||||
} else {
|
||||
result
|
||||
};
|
||||
AttrValue::UInt(string, result)
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#limited-to-only-non-negative-numbers-greater-than-zero
|
||||
pub fn from_limited_u32(string: DOMString, default: u32) -> AttrValue {
|
||||
let result = parse_unsigned_integer(string.chars()).unwrap_or(default);
|
||||
let result = if result == 0 || result > 2147483647 {
|
||||
default
|
||||
} else {
|
||||
result
|
||||
};
|
||||
AttrValue::UInt(string, result)
|
||||
}
|
||||
|
||||
|
|
|
@ -711,7 +711,7 @@ pub trait AttributeHandlers {
|
|||
fn get_tokenlist_attribute(self, local_name: &Atom) -> Vec<Atom>;
|
||||
fn set_tokenlist_attribute(self, local_name: &Atom, value: DOMString);
|
||||
fn set_atomic_tokenlist_attribute(self, local_name: &Atom, tokens: Vec<Atom>);
|
||||
fn get_uint_attribute(self, local_name: &Atom) -> u32;
|
||||
fn get_uint_attribute(self, local_name: &Atom, default: u32) -> u32;
|
||||
fn set_uint_attribute(self, local_name: &Atom, value: u32);
|
||||
}
|
||||
|
||||
|
@ -966,7 +966,7 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> {
|
|||
self.set_attribute(local_name, AttrValue::from_atomic_tokens(tokens));
|
||||
}
|
||||
|
||||
fn get_uint_attribute(self, local_name: &Atom) -> u32 {
|
||||
fn get_uint_attribute(self, local_name: &Atom, default: u32) -> u32 {
|
||||
assert!(local_name.chars().all(|ch| {
|
||||
!ch.is_ascii() || ch.to_ascii_lowercase() == ch
|
||||
}));
|
||||
|
@ -979,7 +979,7 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> {
|
|||
implement parse_plain_attribute"),
|
||||
}
|
||||
}
|
||||
None => 0,
|
||||
None => default,
|
||||
}
|
||||
}
|
||||
fn set_uint_attribute(self, local_name: &Atom, value: u32) {
|
||||
|
|
|
@ -242,10 +242,8 @@ impl<'a> HTMLInputElementMethods for JSRef<'a, HTMLInputElement> {
|
|||
make_bool_setter!(SetReadOnly, "readonly");
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-input-size
|
||||
make_uint_getter!(Size);
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-input-size
|
||||
make_uint_setter!(SetSize, "size");
|
||||
make_uint_getter!(Size, "size", DEFAULT_INPUT_SIZE);
|
||||
make_limited_uint_setter!(SetSize, "size", DEFAULT_INPUT_SIZE);
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-input-type
|
||||
make_enumerated_getter!(Type, "text", ("hidden") | ("search") | ("tel") |
|
||||
|
@ -568,7 +566,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLInputElement> {
|
|||
|
||||
fn parse_plain_attribute(&self, name: &Atom, value: DOMString) -> AttrValue {
|
||||
match name {
|
||||
&atom!("size") => AttrValue::from_u32(value, DEFAULT_INPUT_SIZE),
|
||||
&atom!("size") => AttrValue::from_limited_u32(value, DEFAULT_INPUT_SIZE),
|
||||
_ => self.super_type().unwrap().parse_plain_attribute(name, value),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use dom::attr::{Attr, AttrHelpers};
|
||||
use dom::attr::{Attr, AttrHelpers, AttrValue};
|
||||
use dom::bindings::codegen::Bindings::HTMLTableCellElementBinding::HTMLTableCellElementMethods;
|
||||
use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableCellElementDerived};
|
||||
use dom::bindings::js::JSRef;
|
||||
use dom::document::Document;
|
||||
|
@ -12,9 +13,15 @@ use dom::htmlelement::{HTMLElement, HTMLElementTypeId};
|
|||
use dom::node::NodeTypeId;
|
||||
use dom::virtualmethods::VirtualMethods;
|
||||
|
||||
use cssparser::RGBA;
|
||||
use util::str::{self, DOMString, LengthOrPercentageOrAuto};
|
||||
|
||||
use cssparser::RGBA;
|
||||
use string_cache::Atom;
|
||||
|
||||
use std::cell::Cell;
|
||||
use std::cmp::max;
|
||||
|
||||
const DEFAULT_COLSPAN: u32 = 1;
|
||||
|
||||
#[derive(Copy, Clone, PartialEq, Debug)]
|
||||
#[jstraceable]
|
||||
|
@ -60,6 +67,12 @@ impl HTMLTableCellElement {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a> HTMLTableCellElementMethods for JSRef<'a, HTMLTableCellElement> {
|
||||
// https://html.spec.whatwg.org/multipage/#dom-tdth-colspan
|
||||
make_uint_getter!(ColSpan, "colspan", DEFAULT_COLSPAN);
|
||||
make_uint_setter!(SetColSpan, "colspan");
|
||||
}
|
||||
|
||||
pub trait HTMLTableCellElementHelpers {
|
||||
fn get_background_color(&self) -> Option<RGBA>;
|
||||
fn get_colspan(&self) -> Option<u32>;
|
||||
|
@ -96,8 +109,13 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLTableCellElement> {
|
|||
self.background_color.set(str::parse_legacy_color(&attr.value()).ok())
|
||||
}
|
||||
&atom!("colspan") => {
|
||||
self.colspan.set(str::parse_unsigned_integer(attr.value().chars()));
|
||||
match *attr.value() {
|
||||
AttrValue::UInt(_, colspan) => {
|
||||
self.colspan.set(Some(max(DEFAULT_COLSPAN, colspan)))
|
||||
},
|
||||
_ => unreachable!(),
|
||||
}
|
||||
},
|
||||
&atom!("width") => self.width.set(str::parse_length(&attr.value())),
|
||||
_ => ()
|
||||
}
|
||||
|
@ -115,5 +133,11 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLTableCellElement> {
|
|||
_ => ()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn parse_plain_attribute(&self, local_name: &Atom, value: DOMString) -> AttrValue {
|
||||
match local_name {
|
||||
&atom!("colspan") => AttrValue::from_u32(value, DEFAULT_COLSPAN),
|
||||
_ => self.super_type().unwrap().parse_plain_attribute(local_name, value),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -114,10 +114,8 @@ impl<'a> HTMLTextAreaElementMethods for JSRef<'a, HTMLTextAreaElement> {
|
|||
// constraints
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-textarea-cols
|
||||
make_uint_getter!(Cols);
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-textarea-cols
|
||||
make_uint_setter!(SetCols, "cols");
|
||||
make_uint_getter!(Cols, "cols", DEFAULT_COLS);
|
||||
make_limited_uint_setter!(SetCols, "cols", DEFAULT_COLS);
|
||||
|
||||
// https://www.whatwg.org/html/#dom-fe-disabled
|
||||
make_bool_getter!(Disabled);
|
||||
|
@ -150,10 +148,8 @@ impl<'a> HTMLTextAreaElementMethods for JSRef<'a, HTMLTextAreaElement> {
|
|||
make_bool_setter!(SetRequired, "required");
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-textarea-rows
|
||||
make_uint_getter!(Rows);
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-textarea-rows
|
||||
make_uint_setter!(SetRows, "rows");
|
||||
make_uint_getter!(Rows, "rows", DEFAULT_ROWS);
|
||||
make_limited_uint_setter!(SetRows, "rows", DEFAULT_ROWS);
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-textarea-wrap
|
||||
make_getter!(Wrap);
|
||||
|
@ -310,8 +306,8 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLTextAreaElement> {
|
|||
|
||||
fn parse_plain_attribute(&self, name: &Atom, value: DOMString) -> AttrValue {
|
||||
match name {
|
||||
&atom!("cols") => AttrValue::from_u32(value, DEFAULT_COLS),
|
||||
&atom!("rows") => AttrValue::from_u32(value, DEFAULT_ROWS),
|
||||
&atom!("cols") => AttrValue::from_limited_u32(value, DEFAULT_COLS),
|
||||
&atom!("rows") => AttrValue::from_limited_u32(value, DEFAULT_ROWS),
|
||||
_ => self.super_type().unwrap().parse_plain_attribute(name, value),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ macro_rules! make_bool_getter(
|
|||
|
||||
#[macro_export]
|
||||
macro_rules! make_uint_getter(
|
||||
( $attr:ident, $htmlname:expr ) => (
|
||||
($attr:ident, $htmlname:expr, $default:expr) => (
|
||||
fn $attr(self) -> u32 {
|
||||
use dom::element::{Element, AttributeHandlers};
|
||||
use dom::bindings::codegen::InheritTypes::ElementCast;
|
||||
|
@ -47,9 +47,12 @@ macro_rules! make_uint_getter(
|
|||
use std::ascii::AsciiExt;
|
||||
let element: JSRef<Element> = ElementCast::from_ref(self);
|
||||
// FIXME(pcwalton): Do this at compile time, not runtime.
|
||||
element.get_uint_attribute(&Atom::from_slice($htmlname))
|
||||
element.get_uint_attribute(&Atom::from_slice($htmlname), $default)
|
||||
}
|
||||
);
|
||||
($attr:ident, $htmlname:expr) => {
|
||||
make_uint_getter!($attr, $htmlname, 0);
|
||||
};
|
||||
($attr:ident) => {
|
||||
make_uint_getter!($attr, to_lower!(stringify!($attr)));
|
||||
}
|
||||
|
@ -153,15 +156,51 @@ macro_rules! make_bool_setter(
|
|||
|
||||
#[macro_export]
|
||||
macro_rules! make_uint_setter(
|
||||
( $attr:ident, $htmlname:expr ) => (
|
||||
($attr:ident, $htmlname:expr, $default:expr) => (
|
||||
fn $attr(self, value: u32) {
|
||||
use dom::element::{Element, AttributeHandlers};
|
||||
use dom::bindings::codegen::InheritTypes::ElementCast;
|
||||
let value = if value > 2147483647 {
|
||||
$default
|
||||
} else {
|
||||
value
|
||||
};
|
||||
let element: JSRef<Element> = ElementCast::from_ref(self);
|
||||
// FIXME(pcwalton): Do this at compile time, not at runtime.
|
||||
element.set_uint_attribute(&Atom::from_slice($htmlname), value)
|
||||
}
|
||||
);
|
||||
($attr:ident, $htmlname:expr) => {
|
||||
make_uint_setter!($attr, $htmlname, 0);
|
||||
};
|
||||
);
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! make_limited_uint_setter(
|
||||
($attr:ident, $htmlname:expr, $default:expr) => (
|
||||
fn $attr(self, value: u32) -> $crate::dom::bindings::error::ErrorResult {
|
||||
use dom::element::AttributeHandlers;
|
||||
use dom::bindings::codegen::InheritTypes::ElementCast;
|
||||
use string_cache::Atom;
|
||||
let value = if value == 0 {
|
||||
return Err($crate::dom::bindings::error::Error::IndexSize);
|
||||
} else if value > 2147483647 {
|
||||
$default
|
||||
} else {
|
||||
value
|
||||
};
|
||||
let element = ElementCast::from_ref(self);
|
||||
// FIXME(pcwalton): Do this at compile time, not runtime.
|
||||
element.set_uint_attribute(&Atom::from_slice($htmlname), value);
|
||||
Ok(())
|
||||
}
|
||||
);
|
||||
($attr:ident, $htmlname:expr) => {
|
||||
make_limited_uint_setter!($attr, $htmlname, 1);
|
||||
};
|
||||
($attr:ident) => {
|
||||
make_limited_uint_setter!($attr, to_lower!(stringify!($attr)));
|
||||
};
|
||||
);
|
||||
|
||||
/// For use on non-jsmanaged types
|
||||
|
|
|
@ -34,6 +34,7 @@ interface HTMLInputElement : HTMLElement {
|
|||
attribute DOMString placeholder;
|
||||
attribute boolean readOnly;
|
||||
// attribute boolean required;
|
||||
[SetterThrows]
|
||||
attribute unsigned long size;
|
||||
// attribute DOMString src;
|
||||
// attribute DOMString step;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
// https://www.whatwg.org/html/#htmltablecellelement
|
||||
interface HTMLTableCellElement : HTMLElement {
|
||||
// attribute unsigned long colSpan;
|
||||
attribute unsigned long colSpan;
|
||||
// attribute unsigned long rowSpan;
|
||||
//[PutForwards=value] readonly attribute DOMSettableTokenList headers;
|
||||
//readonly attribute long cellIndex;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
interface HTMLTextAreaElement : HTMLElement {
|
||||
// attribute DOMString autocomplete;
|
||||
// attribute boolean autofocus;
|
||||
[SetterThrows]
|
||||
attribute unsigned long cols;
|
||||
// attribute DOMString dirName;
|
||||
attribute boolean disabled;
|
||||
|
@ -18,6 +19,7 @@ interface HTMLTextAreaElement : HTMLElement {
|
|||
attribute DOMString placeholder;
|
||||
attribute boolean readOnly;
|
||||
attribute boolean required;
|
||||
[SetterThrows]
|
||||
attribute unsigned long rows;
|
||||
attribute DOMString wrap;
|
||||
|
||||
|
|
|
@ -5238,9 +5238,6 @@
|
|||
[HTMLTableDataCellElement interface: document.createElement("td") must inherit property "abbr" with the proper type (0)]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLTableCellElement interface: document.createElement("td") must inherit property "colSpan" with the proper type (0)]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLTableCellElement interface: document.createElement("td") must inherit property "rowSpan" with the proper type (1)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -5307,9 +5304,6 @@
|
|||
[HTMLTableHeaderCellElement interface: document.createElement("th") must inherit property "sort" with the proper type (3)]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLTableCellElement interface: document.createElement("th") must inherit property "colSpan" with the proper type (0)]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLTableCellElement interface: document.createElement("th") must inherit property "rowSpan" with the proper type (1)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -5352,9 +5346,6 @@
|
|||
[HTMLTableCellElement interface object length]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLTableCellElement interface: attribute colSpan]
|
||||
expected: FAIL
|
||||
|
||||
[HTMLTableCellElement interface: attribute rowSpan]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1125,24 +1125,12 @@
|
|||
[img.lowsrc: IDL set to object "test-valueOf" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[img.hspace: setAttribute() to 2147483648 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[img.hspace: setAttribute() to 4294967295 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[img.hspace: setAttribute() to object "3" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[img.hspace: setAttribute() to object "3" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[img.vspace: setAttribute() to 2147483648 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[img.vspace: setAttribute() to 4294967295 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[img.vspace: setAttribute() to object "3" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -5766,33 +5766,12 @@
|
|||
[input.required: IDL set to object "test-valueOf" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[input.size: IDL get with DOM attribute unset]
|
||||
expected: FAIL
|
||||
|
||||
[input.size: setAttribute() to 0 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[input.size: setAttribute() to 2147483648 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[input.size: setAttribute() to 4294967295 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[input.size: setAttribute() to "-0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[input.size: setAttribute() to "0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[input.size: setAttribute() to object "3" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[input.size: setAttribute() to object "3" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[input.size: IDL set to 0 must throw INDEX_SIZE_ERR]
|
||||
expected: FAIL
|
||||
|
||||
[input.src: typeof IDL attribute]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -12201,33 +12180,12 @@
|
|||
[textarea.autofocus: IDL set to object "test-valueOf" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.cols: IDL get with DOM attribute unset]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.cols: setAttribute() to 0 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.cols: setAttribute() to 2147483648 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.cols: setAttribute() to 4294967295 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.cols: setAttribute() to "-0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.cols: setAttribute() to "0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.cols: setAttribute() to object "3" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.cols: setAttribute() to object "3" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.cols: IDL set to 0 must throw INDEX_SIZE_ERR]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.dirName: typeof IDL attribute]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -13137,33 +13095,12 @@
|
|||
[textarea.maxLength: IDL set to 2147483647 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.rows: IDL get with DOM attribute unset]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.rows: setAttribute() to 0 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.rows: setAttribute() to 2147483648 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.rows: setAttribute() to 4294967295 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.rows: setAttribute() to "-0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.rows: setAttribute() to "0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.rows: setAttribute() to object "3" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.rows: setAttribute() to object "3" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.rows: IDL set to 0 must throw INDEX_SIZE_ERR]
|
||||
expected: FAIL
|
||||
|
||||
[textarea.itemScope: typeof IDL attribute]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11544,192 +11544,12 @@
|
|||
[td.tabIndex: IDL set to -2147483648 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: typeof IDL attribute]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: IDL get with DOM attribute unset]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to -2147483649 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to -2147483648 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to -36 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to -1 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to 0 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to 1 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to 257 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to 2147483647 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to 2147483648 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to 4294967295 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to 4294967296 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "-1" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "-0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "1" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "\\t7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "\\v7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "\\f7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "\\n7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "\\r7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "
7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "
7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to undefined followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to 1.5 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to true followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to false followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to object "[object Object\]" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to NaN followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to Infinity followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to -Infinity followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to "\\0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to object "2" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to object "3" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: setAttribute() to object "3" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: IDL set to 0 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: IDL set to 1 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: IDL set to 257 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: IDL set to 2147483647 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: IDL set to "-0" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[td.colSpan: IDL set to "-0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[td.rowSpan: typeof IDL attribute]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -13917,192 +13737,12 @@
|
|||
[th.tabIndex: IDL set to -2147483648 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: typeof IDL attribute]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: IDL get with DOM attribute unset]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to -2147483649 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to -2147483648 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to -36 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to -1 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to 0 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to 1 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to 257 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to 2147483647 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to 2147483648 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to 4294967295 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to 4294967296 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "-1" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "-0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "1" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "\\t7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "\\v7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "\\f7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "\\n7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "\\r7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "
7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "
7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " 7" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to undefined followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to 1.5 followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to true followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to false followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to object "[object Object\]" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to NaN followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to Infinity followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to -Infinity followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to "\\0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to object "2" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to object "3" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: setAttribute() to object "3" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: IDL set to 0 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: IDL set to 1 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: IDL set to 257 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: IDL set to 2147483647 followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: IDL set to "-0" followed by getAttribute()]
|
||||
expected: FAIL
|
||||
|
||||
[th.colSpan: IDL set to "-0" followed by IDL get]
|
||||
expected: FAIL
|
||||
|
||||
[th.rowSpan: typeof IDL attribute]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[cols-zero.html]
|
||||
type: reftest
|
||||
reftype: ==
|
||||
refurl: /html/rendering/bindings/the-textarea-element-0/textarea-ref.html
|
||||
expected: FAIL
|
|
@ -1,5 +0,0 @@
|
|||
[rows-zero.html]
|
||||
type: reftest
|
||||
reftype: ==
|
||||
refurl: /html/rendering/bindings/the-textarea-element-0/textarea-ref.html
|
||||
expected: FAIL
|
Loading…
Add table
Add a link
Reference in a new issue