aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock48
-rw-r--r--components/layout/display_list/background.rs18
-rw-r--r--components/layout/flow/root.rs15
-rw-r--r--components/layout/layout_impl.rs58
-rw-r--r--components/layout/traversal.rs4
-rw-r--r--components/script/dom/bindings/structuredclone.rs27
-rw-r--r--components/script/dom/globalscope.rs6
-rw-r--r--components/script/dom/imagebitmap.rs133
-rw-r--r--components/script_bindings/codegen/CodegenRust.py44
-rw-r--r--components/script_bindings/webidls/ImageBitmap.webidl3
-rw-r--r--components/script_bindings/webidls/TestBinding.webidl3
-rw-r--r--components/shared/base/id.rs2
-rw-r--r--components/shared/constellation/structured_data/mod.rs7
-rw-r--r--components/shared/constellation/structured_data/serializable.rs35
-rw-r--r--components/shared/constellation/structured_data/transferable.rs2
-rw-r--r--support/openharmony/entry/src/main/ets/pages/Index.ets5
-rw-r--r--tests/wpt/meta/MANIFEST.json13
-rw-r--r--tests/wpt/meta/css/CSS2/backgrounds/background-bg-pos-206.xht.ini2
-rw-r--r--tests/wpt/meta/html/browsers/history/the-history-interface/001.html.ini6
-rw-r--r--tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini6
-rw-r--r--tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini6
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w.html.ini3
-rw-r--r--tests/wpt/meta/html/dom/reflection-embedded.html.ini8803
-rw-r--r--tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/messagechannel.any.js.ini18
-rw-r--r--tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window.js.ini6
-rw-r--r--tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/window-postmessage.window.js.ini18
-rw-r--r--tests/wpt/meta/html/webappapis/structured-clone/structured-clone.any.js.ini18
-rw-r--r--tests/wpt/meta/webmessaging/postMessage_cross_domain_image_transfer_2d.sub.htm.ini7
-rw-r--r--tests/wpt/meta/workers/semantics/structured-clone/dedicated.html.ini18
-rw-r--r--tests/wpt/mozilla/meta/mozilla/sslfail.html.ini3
-rw-r--r--tests/wpt/tests/css/CSS2/zindex/z-index-020.html39
-rw-r--r--tests/wpt/webgl/meta/conformance/more/conformance/quickCheckAPI-S_V.html.ini3
-rw-r--r--third_party/WebIDL/WebIDL.py1
-rw-r--r--third_party/WebIDL/transferable.patch12
-rwxr-xr-xthird_party/WebIDL/update.sh1
35 files changed, 9177 insertions, 216 deletions
diff --git a/Cargo.lock b/Cargo.lock
index bf2c9c74e51..e2503d2cde4 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -843,9 +843,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.2.23"
+version = "1.2.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4ac86a9e5bc1e2b3449ab9d7d3a6a405e3d1bb28d7b9be8614f55846ae3766"
+checksum = "16595d3be041c03b09d08d0858631facccee9221e579704070e6e9e4915d3bc7"
dependencies = [
"jobserver",
"libc",
@@ -1064,7 +1064,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c"
dependencies = [
"lazy_static",
- "windows-sys 0.48.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -2028,7 +2028,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18"
dependencies = [
"libc",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -2561,7 +2561,7 @@ dependencies = [
"gobject-sys",
"libc",
"system-deps",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -4003,7 +4003,7 @@ checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9"
dependencies = [
"hermit-abi 0.5.0",
"libc",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -4255,7 +4255,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a793df0d7afeac54f95b471d3af7f0d4fb975699f972341a4b76988d49cdf0c"
dependencies = [
"cfg-if",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -6180,7 +6180,7 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -6507,7 +6507,7 @@ dependencies = [
[[package]]
name = "selectors"
version = "0.28.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#88b34ae4293ca7286584cee37bca1f58ab79a8cb"
+source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
dependencies = [
"bitflags 2.9.1",
"cssparser",
@@ -6802,7 +6802,7 @@ dependencies = [
[[package]]
name = "servo_arc"
version = "0.4.1"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#88b34ae4293ca7286584cee37bca1f58ab79a8cb"
+source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
dependencies = [
"serde",
"stable_deref_trait",
@@ -7247,7 +7247,7 @@ dependencies = [
[[package]]
name = "stylo"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#88b34ae4293ca7286584cee37bca1f58ab79a8cb"
+source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
dependencies = [
"app_units",
"arrayvec",
@@ -7305,7 +7305,7 @@ dependencies = [
[[package]]
name = "stylo_atoms"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#88b34ae4293ca7286584cee37bca1f58ab79a8cb"
+source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
dependencies = [
"string_cache",
"string_cache_codegen",
@@ -7314,12 +7314,12 @@ dependencies = [
[[package]]
name = "stylo_config"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#88b34ae4293ca7286584cee37bca1f58ab79a8cb"
+source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
[[package]]
name = "stylo_derive"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#88b34ae4293ca7286584cee37bca1f58ab79a8cb"
+source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
dependencies = [
"darling",
"proc-macro2",
@@ -7331,7 +7331,7 @@ dependencies = [
[[package]]
name = "stylo_dom"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#88b34ae4293ca7286584cee37bca1f58ab79a8cb"
+source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
dependencies = [
"bitflags 2.9.1",
"stylo_malloc_size_of",
@@ -7340,7 +7340,7 @@ dependencies = [
[[package]]
name = "stylo_malloc_size_of"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#88b34ae4293ca7286584cee37bca1f58ab79a8cb"
+source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
dependencies = [
"app_units",
"cssparser",
@@ -7357,12 +7357,12 @@ dependencies = [
[[package]]
name = "stylo_static_prefs"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#88b34ae4293ca7286584cee37bca1f58ab79a8cb"
+source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
[[package]]
name = "stylo_traits"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#88b34ae4293ca7286584cee37bca1f58ab79a8cb"
+source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
dependencies = [
"app_units",
"bitflags 2.9.1",
@@ -7526,7 +7526,7 @@ dependencies = [
"getrandom",
"once_cell",
"rustix",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -7745,7 +7745,7 @@ dependencies = [
[[package]]
name = "to_shmem"
version = "0.2.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#88b34ae4293ca7286584cee37bca1f58ab79a8cb"
+source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
dependencies = [
"cssparser",
"servo_arc",
@@ -7758,7 +7758,7 @@ dependencies = [
[[package]]
name = "to_shmem_derive"
version = "0.1.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#88b34ae4293ca7286584cee37bca1f58ab79a8cb"
+source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
dependencies = [
"darling",
"proc-macro2",
@@ -8724,9 +8724,9 @@ dependencies = [
[[package]]
name = "weezl"
-version = "0.1.8"
+version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
+checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3"
[[package]]
name = "wgpu-core"
@@ -8879,7 +8879,7 @@ version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.59.0",
]
[[package]]
diff --git a/components/layout/display_list/background.rs b/components/layout/display_list/background.rs
index 563bce28450..f1099fdab2b 100644
--- a/components/layout/display_list/background.rs
+++ b/components/layout/display_list/background.rs
@@ -3,7 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
use app_units::Au;
-use euclid::{Point2D, Size2D, Vector2D};
+use euclid::{Size2D, Vector2D};
use style::computed_values::background_attachment::SingleComputedValue as BackgroundAttachment;
use style::computed_values::background_clip::single_value::T as Clip;
use style::computed_values::background_origin::single_value::T as Origin;
@@ -15,7 +15,6 @@ use style::values::specified::background::{
};
use webrender_api::{self as wr, units};
use wr::ClipChainId;
-use wr::units::LayoutSize;
use crate::replaced::NaturalSizes;
@@ -66,8 +65,7 @@ impl<'a> BackgroundPainter<'a> {
if &BackgroundAttachment::Fixed ==
get_cyclic(&background.background_attachment.0, layer_index)
{
- let viewport_size = builder.compositor_info.viewport_size;
- return units::LayoutRect::from_origin_and_size(Point2D::origin(), viewport_size);
+ return builder.compositor_info.viewport_size.into();
}
match get_cyclic(&background.background_clip.0, layer_index) {
@@ -132,6 +130,7 @@ impl<'a> BackgroundPainter<'a> {
pub(super) fn positioning_area(
&self,
fragment_builder: &'a super::BuilderForBoxFragment,
+ builder: &mut super::DisplayListBuilder,
layer_index: usize,
) -> units::LayoutRect {
if let Some(positioning_area_override) = self.positioning_area_override {
@@ -150,14 +149,7 @@ impl<'a> BackgroundPainter<'a> {
Origin::PaddingBox => *fragment_builder.padding_rect(),
Origin::BorderBox => fragment_builder.border_rect,
},
- BackgroundAttachment::Fixed => {
- // This isn't the viewport size because that rects larger than the viewport might be
- // transformed down into areas smaller than the viewport.
- units::LayoutRect::from_origin_and_size(
- Point2D::origin(),
- LayoutSize::new(f32::MAX, f32::MAX),
- )
- },
+ BackgroundAttachment::Fixed => builder.compositor_info.viewport_size.into(),
}
}
}
@@ -170,7 +162,7 @@ pub(super) fn layout_layer(
natural_sizes: NaturalSizes,
) -> Option<BackgroundLayer> {
let painting_area = painter.painting_area(fragment_builder, builder, layer_index);
- let positioning_area = painter.positioning_area(fragment_builder, layer_index);
+ let positioning_area = painter.positioning_area(fragment_builder, builder, layer_index);
let common = painter.common_properties(fragment_builder, builder, layer_index, painting_area);
// https://drafts.csswg.org/css-backgrounds/#background-size
diff --git a/components/layout/flow/root.rs b/components/layout/flow/root.rs
index 8ad3671032e..fb9884a4f01 100644
--- a/components/layout/flow/root.rs
+++ b/components/layout/flow/root.rs
@@ -5,6 +5,8 @@
use app_units::Au;
use atomic_refcell::AtomicRef;
use compositing_traits::display_list::AxesScrollSensitivity;
+use euclid::Rect;
+use euclid::default::Size2D as UntypedSize2D;
use malloc_size_of_derive::MallocSizeOf;
use script::layout_dom::ServoLayoutNode;
use script_layout_interface::wrapper_traits::{
@@ -27,7 +29,7 @@ use crate::flow::inline::InlineItem;
use crate::flow::{BlockContainer, BlockFormattingContext, BlockLevelBox};
use crate::formatting_contexts::IndependentFormattingContext;
use crate::fragment_tree::FragmentTree;
-use crate::geom::{LogicalVec2, PhysicalPoint, PhysicalRect, PhysicalSize};
+use crate::geom::{LogicalVec2, PhysicalRect, PhysicalSize};
use crate::positioned::{AbsolutelyPositionedBox, PositioningContext};
use crate::replaced::ReplacedContents;
use crate::style_ext::{Display, DisplayGeneratingBox, DisplayInside};
@@ -348,7 +350,7 @@ impl BoxTree {
pub fn layout(
&self,
layout_context: &LayoutContext,
- viewport: euclid::Size2D<f32, CSSPixel>,
+ viewport: UntypedSize2D<Au>,
) -> FragmentTree {
let style = layout_context
.style_context
@@ -358,13 +360,8 @@ impl BoxTree {
// FIXME: use the document’s mode:
// https://drafts.csswg.org/css-writing-modes/#principal-flow
- let physical_containing_block = PhysicalRect::new(
- PhysicalPoint::zero(),
- PhysicalSize::new(
- Au::from_f32_px(viewport.width),
- Au::from_f32_px(viewport.height),
- ),
- );
+ let physical_containing_block: Rect<Au, CSSPixel> =
+ PhysicalSize::from_untyped(viewport).into();
let initial_containing_block = DefiniteContainingBlock {
size: LogicalVec2 {
inline: physical_containing_block.size.width,
diff --git a/components/layout/layout_impl.rs b/components/layout/layout_impl.rs
index 8162ed1dd0b..3452c9a6e4c 100644
--- a/components/layout/layout_impl.rs
+++ b/components/layout/layout_impl.rs
@@ -16,7 +16,7 @@ use base::id::{PipelineId, WebViewId};
use compositing_traits::CrossProcessCompositorApi;
use constellation_traits::ScrollState;
use embedder_traits::{UntrustedNodeAddress, ViewportDetails};
-use euclid::default::{Point2D as UntypedPoint2D, Rect as UntypedRect, Size2D as UntypedSize2D};
+use euclid::default::{Point2D as UntypedPoint2D, Rect as UntypedRect};
use euclid::{Point2D, Scale, Size2D, Vector2D};
use fnv::FnvHashMap;
use fonts::{FontContext, FontContextWebFontMethods};
@@ -150,10 +150,6 @@ pub struct LayoutThread {
/// A counter for epoch messages
epoch: Cell<Epoch>,
- /// The size of the viewport. This may be different from the size of the screen due to viewport
- /// constraints.
- viewport_size: UntypedSize2D<Au>,
-
/// Scroll offsets of nodes that scroll.
scroll_offsets: RefCell<HashMap<ExternalScrollId, Vector2D<f32, LayoutPixel>>>,
@@ -527,10 +523,6 @@ impl LayoutThread {
stacking_context_tree: Default::default(),
// Epoch starts at 1 because of the initial display list for epoch 0 that we send to WR
epoch: Cell::new(Epoch(1)),
- viewport_size: Size2D::new(
- Au::from_f32_px(config.viewport_details.size.width),
- Au::from_f32_px(config.viewport_details.size.height),
- ),
compositor_api: config.compositor_api,
scroll_offsets: Default::default(),
stylist: Stylist::new(device, QuirksMode::NoQuirks),
@@ -611,7 +603,8 @@ impl LayoutThread {
ua_or_user: &ua_or_user_guard,
};
- if self.update_device_if_necessary(&reflow_request, &guards) {
+ let viewport_changed = self.viewport_did_change(reflow_request.viewport_details);
+ if self.update_device_if_necessary(&reflow_request, viewport_changed, &guards) {
if let Some(mut data) = root_element.mutate_data() {
data.hint.insert(RestyleHint::recascade_subtree());
}
@@ -653,14 +646,15 @@ impl LayoutThread {
highlighted_dom_node: reflow_request.highlighted_dom_node,
};
- let did_reflow = self.restyle_and_build_trees(
+ let damage = self.restyle_and_build_trees(
&reflow_request,
root_element,
rayon_pool,
&mut layout_context,
+ viewport_changed,
);
- self.build_stacking_context_tree(&reflow_request, did_reflow);
+ self.build_stacking_context_tree(&reflow_request, damage);
self.build_display_list(&reflow_request, &mut layout_context);
self.first_reflow.set(false);
@@ -683,12 +677,12 @@ impl LayoutThread {
fn update_device_if_necessary(
&mut self,
reflow_request: &ReflowRequest,
+ viewport_changed: bool,
guards: &StylesheetGuards,
) -> bool {
let had_used_viewport_units = self.stylist.device().used_viewport_units();
- let viewport_size_changed = self.viewport_did_change(reflow_request.viewport_details);
let theme_changed = self.theme_did_change(reflow_request.theme);
- if !viewport_size_changed && !theme_changed {
+ if !viewport_changed && !theme_changed {
return false;
}
self.update_device(
@@ -696,7 +690,7 @@ impl LayoutThread {
reflow_request.theme,
guards,
);
- (viewport_size_changed && had_used_viewport_units) || theme_changed
+ (viewport_changed && had_used_viewport_units) || theme_changed
}
fn prepare_stylist_for_reflow<'dom>(
@@ -749,7 +743,8 @@ impl LayoutThread {
root_element: ServoLayoutElement<'_>,
rayon_pool: Option<&ThreadPool>,
layout_context: &mut LayoutContext<'_>,
- ) -> bool {
+ viewport_changed: bool,
+ ) -> RestyleDamage {
let dirty_root = unsafe {
ServoLayoutNode::new(&reflow_request.dirty_root.unwrap())
.as_element()
@@ -765,7 +760,7 @@ impl LayoutThread {
if !token.should_traverse() {
layout_context.style_context.stylist.rule_tree().maybe_gc();
- return false;
+ return RestyleDamage::empty();
}
let dirty_root: ServoLayoutNode =
@@ -773,9 +768,9 @@ impl LayoutThread {
let root_node = root_element.as_node();
let damage = compute_damage_and_repair_style(layout_context.shared_context(), root_node);
- if damage.is_empty() || damage == RestyleDamage::REPAINT {
+ if !viewport_changed && !damage.contains(RestyleDamage::REBUILD_BOX) {
layout_context.style_context.stylist.rule_tree().maybe_gc();
- return false;
+ return damage;
}
let mut box_tree = self.box_tree.borrow_mut();
@@ -794,10 +789,7 @@ impl LayoutThread {
build_box_tree()
};
- let viewport_size = Size2D::new(
- self.viewport_size.width.to_f32_px(),
- self.viewport_size.height.to_f32_px(),
- );
+ let viewport_size = self.stylist.device().au_viewport_size();
let run_layout = || {
box_tree
.as_ref()
@@ -836,10 +828,10 @@ impl LayoutThread {
// GC the rule tree if some heuristics are met.
layout_context.style_context.stylist.rule_tree().maybe_gc();
- true
+ damage
}
- fn build_stacking_context_tree(&self, reflow_request: &ReflowRequest, did_reflow: bool) {
+ fn build_stacking_context_tree(&self, reflow_request: &ReflowRequest, damage: RestyleDamage) {
if !reflow_request.reflow_goal.needs_display_list() &&
!reflow_request.reflow_goal.needs_display()
{
@@ -848,14 +840,17 @@ impl LayoutThread {
let Some(fragment_tree) = &*self.fragment_tree.borrow() else {
return;
};
- if !did_reflow && self.stacking_context_tree.borrow().is_some() {
+ if !damage.contains(RestyleDamage::REBUILD_STACKING_CONTEXT) &&
+ self.stacking_context_tree.borrow().is_some()
+ {
return;
}
- let viewport_size = LayoutSize::from_untyped(Size2D::new(
- self.viewport_size.width.to_f32_px(),
- self.viewport_size.height.to_f32_px(),
- ));
+ let viewport_size = self.stylist.device().au_viewport_size();
+ let viewport_size = LayoutSize::new(
+ viewport_size.width.to_f32_px(),
+ viewport_size.height.to_f32_px(),
+ );
// Build the StackingContextTree. This turns the `FragmentTree` into a
// tree of fragments in CSS painting order and also creates all
@@ -949,9 +944,6 @@ impl LayoutThread {
Au::from_f32_px(viewport_details.size.height),
);
- // TODO: eliminate self.viewport_size in favour of using self.device.au_viewport_size()
- self.viewport_size = new_viewport_size;
-
let device = self.stylist.device();
let size_did_change = device.au_viewport_size() != new_viewport_size;
let pixel_ratio_did_change = device.device_pixel_ratio().get() != new_pixel_ratio;
diff --git a/components/layout/traversal.rs b/components/layout/traversal.rs
index faf25dc170d..22faa4b1191 100644
--- a/components/layout/traversal.rs
+++ b/components/layout/traversal.rs
@@ -131,7 +131,9 @@ pub(crate) fn compute_damage_and_repair_style_inner(
}
}
- if propagated_damage == RestyleDamage::REPAINT && original_damage == RestyleDamage::REPAINT {
+ if !propagated_damage.contains(RestyleDamage::REBUILD_BOX) &&
+ !original_damage.contains(RestyleDamage::REBUILD_BOX)
+ {
node.repair_style(context);
}
diff --git a/components/script/dom/bindings/structuredclone.rs b/components/script/dom/bindings/structuredclone.rs
index c23156817cb..73974abe714 100644
--- a/components/script/dom/bindings/structuredclone.rs
+++ b/components/script/dom/bindings/structuredclone.rs
@@ -10,11 +10,13 @@ use std::os::raw;
use std::ptr;
use base::id::{
- BlobId, DomExceptionId, DomPointId, Index, MessagePortId, NamespaceIndex, PipelineNamespaceId,
+ BlobId, DomExceptionId, DomPointId, ImageBitmapId, Index, MessagePortId, NamespaceIndex,
+ PipelineNamespaceId,
};
use constellation_traits::{
BlobImpl, DomException, DomPoint, MessagePortImpl, Serializable as SerializableInterface,
- StructuredSerializedData, Transferrable as TransferrableInterface, TransformStreamData,
+ SerializableImageBitmap, StructuredSerializedData, Transferrable as TransferrableInterface,
+ TransformStreamData,
};
use js::gc::RootedVec;
use js::glue::{
@@ -42,6 +44,7 @@ use crate::dom::blob::Blob;
use crate::dom::dompoint::DOMPoint;
use crate::dom::dompointreadonly::DOMPointReadOnly;
use crate::dom::globalscope::GlobalScope;
+use crate::dom::imagebitmap::ImageBitmap;
use crate::dom::messageport::MessagePort;
use crate::dom::readablestream::ReadableStream;
use crate::dom::types::{DOMException, TransformStream};
@@ -66,6 +69,7 @@ pub(super) enum StructuredCloneTags {
DomException = 0xFFFF8007,
WritableStream = 0xFFFF8008,
TransformStream = 0xFFFF8009,
+ ImageBitmap = 0xFFFF800A,
Max = 0xFFFFFFFF,
}
@@ -76,6 +80,7 @@ impl From<SerializableInterface> for StructuredCloneTags {
SerializableInterface::DomPointReadOnly => StructuredCloneTags::DomPointReadOnly,
SerializableInterface::DomPoint => StructuredCloneTags::DomPoint,
SerializableInterface::DomException => StructuredCloneTags::DomException,
+ SerializableInterface::ImageBitmap => StructuredCloneTags::ImageBitmap,
}
}
}
@@ -83,6 +88,7 @@ impl From<SerializableInterface> for StructuredCloneTags {
impl From<TransferrableInterface> for StructuredCloneTags {
fn from(v: TransferrableInterface) -> Self {
match v {
+ TransferrableInterface::ImageBitmap => StructuredCloneTags::ImageBitmap,
TransferrableInterface::MessagePort => StructuredCloneTags::MessagePort,
TransferrableInterface::ReadableStream => StructuredCloneTags::ReadableStream,
TransferrableInterface::WritableStream => StructuredCloneTags::WritableStream,
@@ -104,6 +110,7 @@ fn reader_for_type(
SerializableInterface::DomPointReadOnly => read_object::<DOMPointReadOnly>,
SerializableInterface::DomPoint => read_object::<DOMPoint>,
SerializableInterface::DomException => read_object::<DOMException>,
+ SerializableInterface::ImageBitmap => read_object::<ImageBitmap>,
}
}
@@ -237,6 +244,7 @@ fn serialize_for_type(val: SerializableInterface) -> SerializeOperation {
SerializableInterface::DomPointReadOnly => try_serialize::<DOMPointReadOnly>,
SerializableInterface::DomPoint => try_serialize::<DOMPoint>,
SerializableInterface::DomException => try_serialize::<DOMException>,
+ SerializableInterface::ImageBitmap => try_serialize::<ImageBitmap>,
}
}
@@ -264,6 +272,7 @@ fn receiver_for_type(
) -> fn(&GlobalScope, &mut StructuredDataReader<'_>, u64, RawMutableHandleObject) -> Result<(), ()>
{
match val {
+ TransferrableInterface::ImageBitmap => receive_object::<ImageBitmap>,
TransferrableInterface::MessagePort => receive_object::<MessagePort>,
TransferrableInterface::ReadableStream => receive_object::<ReadableStream>,
TransferrableInterface::WritableStream => receive_object::<WritableStream>,
@@ -390,6 +399,7 @@ type TransferOperation = unsafe fn(
fn transfer_for_type(val: TransferrableInterface) -> TransferOperation {
match val {
+ TransferrableInterface::ImageBitmap => try_transfer::<ImageBitmap>,
TransferrableInterface::MessagePort => try_transfer::<MessagePort>,
TransferrableInterface::ReadableStream => try_transfer::<ReadableStream>,
TransferrableInterface::WritableStream => try_transfer::<WritableStream>,
@@ -439,6 +449,7 @@ unsafe fn can_transfer_for_type(
root_from_object::<T>(*obj, cx).map(|o| Transferable::can_transfer(&*o))
}
match transferable {
+ TransferrableInterface::ImageBitmap => can_transfer::<ImageBitmap>(obj, cx),
TransferrableInterface::MessagePort => can_transfer::<MessagePort>(obj, cx),
TransferrableInterface::ReadableStream => can_transfer::<ReadableStream>(obj, cx),
TransferrableInterface::WritableStream => can_transfer::<WritableStream>(obj, cx),
@@ -527,6 +538,10 @@ pub(crate) struct StructuredDataReader<'a> {
pub(crate) points: Option<HashMap<DomPointId, DomPoint>>,
/// A map of serialized exceptions.
pub(crate) exceptions: Option<HashMap<DomExceptionId, DomException>>,
+ // A map of serialized image bitmaps.
+ pub(crate) image_bitmaps: Option<HashMap<ImageBitmapId, SerializableImageBitmap>>,
+ /// A map of transferred image bitmaps.
+ pub(crate) transferred_image_bitmaps: Option<HashMap<ImageBitmapId, SerializableImageBitmap>>,
}
/// A data holder for transferred and serialized objects.
@@ -545,6 +560,10 @@ pub(crate) struct StructuredDataWriter {
pub(crate) exceptions: Option<HashMap<DomExceptionId, DomException>>,
/// Serialized blobs.
pub(crate) blobs: Option<HashMap<BlobId, BlobImpl>>,
+ /// Serialized image bitmaps.
+ pub(crate) image_bitmaps: Option<HashMap<ImageBitmapId, SerializableImageBitmap>>,
+ /// Transferred image bitmaps.
+ pub(crate) transferred_image_bitmaps: Option<HashMap<ImageBitmapId, SerializableImageBitmap>>,
}
/// Writes a structured clone. Returns a `DataClone` error if that fails.
@@ -599,6 +618,8 @@ pub(crate) fn write(
points: sc_writer.points.take(),
exceptions: sc_writer.exceptions.take(),
blobs: sc_writer.blobs.take(),
+ image_bitmaps: sc_writer.image_bitmaps.take(),
+ transferred_image_bitmaps: sc_writer.transferred_image_bitmaps.take(),
};
Ok(data)
@@ -623,6 +644,8 @@ pub(crate) fn read(
points: data.points.take(),
exceptions: data.exceptions.take(),
errors: DOMErrorRecord { message: None },
+ image_bitmaps: data.image_bitmaps.take(),
+ transferred_image_bitmaps: data.transferred_image_bitmaps.take(),
};
let sc_reader_ptr = &mut sc_reader as *mut _;
unsafe {
diff --git a/components/script/dom/globalscope.rs b/components/script/dom/globalscope.rs
index 55db2e4d248..ec2ed70dd15 100644
--- a/components/script/dom/globalscope.rs
+++ b/components/script/dom/globalscope.rs
@@ -2992,8 +2992,7 @@ impl GlobalScope {
if let Some(snapshot) = canvas.get_image_data() {
let size = snapshot.size().cast();
- let image_bitmap =
- ImageBitmap::new(self, size.width, size.height, can_gc).unwrap();
+ let image_bitmap = ImageBitmap::new(self, size.width, size.height, can_gc);
image_bitmap.set_bitmap_data(snapshot.to_vec());
image_bitmap.set_origin_clean(canvas.origin_is_clean());
p.resolve_native(&(image_bitmap), can_gc);
@@ -3009,8 +3008,7 @@ impl GlobalScope {
if let Some(snapshot) = canvas.get_image_data() {
let size = snapshot.size().cast();
- let image_bitmap =
- ImageBitmap::new(self, size.width, size.height, can_gc).unwrap();
+ let image_bitmap = ImageBitmap::new(self, size.width, size.height, can_gc);
image_bitmap.set_bitmap_data(snapshot.to_vec());
image_bitmap.set_origin_clean(canvas.origin_is_clean());
p.resolve_native(&(image_bitmap), can_gc);
diff --git a/components/script/dom/imagebitmap.rs b/components/script/dom/imagebitmap.rs
index ef6538e7451..97a1a54bba7 100644
--- a/components/script/dom/imagebitmap.rs
+++ b/components/script/dom/imagebitmap.rs
@@ -3,15 +3,20 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
use std::cell::Cell;
+use std::collections::HashMap;
use std::vec::Vec;
+use base::id::{ImageBitmapId, ImageBitmapIndex};
+use constellation_traits::SerializableImageBitmap;
use dom_struct::dom_struct;
use crate::dom::bindings::cell::DomRefCell;
use crate::dom::bindings::codegen::Bindings::ImageBitmapBinding::ImageBitmapMethods;
-use crate::dom::bindings::error::Fallible;
use crate::dom::bindings::reflector::{Reflector, reflect_dom_object};
use crate::dom::bindings::root::DomRoot;
+use crate::dom::bindings::serializable::Serializable;
+use crate::dom::bindings::structuredclone::StructuredData;
+use crate::dom::bindings::transferable::Transferable;
use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
@@ -29,33 +34,36 @@ pub(crate) struct ImageBitmap {
}
impl ImageBitmap {
- fn new_inherited(width_arg: u32, height_arg: u32) -> ImageBitmap {
+ fn new_inherited(width: u32, height: u32) -> ImageBitmap {
ImageBitmap {
reflector_: Reflector::new(),
- width: width_arg,
- height: height_arg,
+ width,
+ height,
bitmap_data: DomRefCell::new(Some(vec![])),
origin_clean: Cell::new(true),
}
}
- #[allow(dead_code)]
pub(crate) fn new(
global: &GlobalScope,
width: u32,
height: u32,
can_gc: CanGc,
- ) -> Fallible<DomRoot<ImageBitmap>> {
+ ) -> DomRoot<ImageBitmap> {
//assigning to a variable the return object of new_inherited
let imagebitmap = Box::new(ImageBitmap::new_inherited(width, height));
- Ok(reflect_dom_object(imagebitmap, global, can_gc))
+ reflect_dom_object(imagebitmap, global, can_gc)
}
pub(crate) fn set_bitmap_data(&self, data: Vec<u8>) {
*self.bitmap_data.borrow_mut() = Some(data);
}
+ pub(crate) fn origin_is_clean(&self) -> bool {
+ self.origin_clean.get()
+ }
+
pub(crate) fn set_origin_clean(&self, origin_is_clean: bool) {
self.origin_clean.set(origin_is_clean);
}
@@ -67,6 +75,117 @@ impl ImageBitmap {
}
}
+impl Serializable for ImageBitmap {
+ type Index = ImageBitmapIndex;
+ type Data = SerializableImageBitmap;
+
+ /// <https://html.spec.whatwg.org/multipage/#the-imagebitmap-interface:serialization-steps>
+ fn serialize(&self) -> Result<(ImageBitmapId, Self::Data), ()> {
+ // Step 1. If value's origin-clean flag is not set, then throw a "DataCloneError" DOMException.
+ if !self.origin_is_clean() {
+ return Err(());
+ }
+
+ // If value has a [[Detached]] internal slot whose value is true,
+ // then throw a "DataCloneError" DOMException.
+ if self.is_detached() {
+ return Err(());
+ }
+
+ // Step 2. Set serialized.[[BitmapData]] to a copy of value's bitmap data.
+ let serialized = SerializableImageBitmap {
+ width: self.width,
+ height: self.height,
+ bitmap_data: self.bitmap_data.borrow().clone().unwrap(),
+ };
+
+ Ok((ImageBitmapId::new(), serialized))
+ }
+
+ /// <https://html.spec.whatwg.org/multipage/#the-imagebitmap-interface:deserialization-steps>
+ fn deserialize(
+ owner: &GlobalScope,
+ serialized: Self::Data,
+ can_gc: CanGc,
+ ) -> Result<DomRoot<Self>, ()> {
+ let image_bitmap = ImageBitmap::new(owner, serialized.width, serialized.height, can_gc);
+
+ // Step 1. Set value's bitmap data to serialized.[[BitmapData]].
+ image_bitmap.set_bitmap_data(serialized.bitmap_data);
+
+ Ok(image_bitmap)
+ }
+
+ fn serialized_storage<'a>(
+ reader: StructuredData<'a, '_>,
+ ) -> &'a mut Option<HashMap<ImageBitmapId, Self::Data>> {
+ match reader {
+ StructuredData::Reader(r) => &mut r.image_bitmaps,
+ StructuredData::Writer(w) => &mut w.image_bitmaps,
+ }
+ }
+}
+
+impl Transferable for ImageBitmap {
+ type Index = ImageBitmapIndex;
+ type Data = SerializableImageBitmap;
+
+ fn can_transfer(&self) -> bool {
+ if !self.origin_is_clean() || self.is_detached() {
+ return false;
+ }
+ true
+ }
+
+ /// <https://html.spec.whatwg.org/multipage/#the-imagebitmap-interface:transfer-steps>
+ fn transfer(&self) -> Result<(ImageBitmapId, SerializableImageBitmap), ()> {
+ // Step 1. If value's origin-clean flag is not set, then throw a "DataCloneError" DOMException.
+ if !self.origin_is_clean() {
+ return Err(());
+ }
+
+ // If value has a [[Detached]] internal slot whose value is true,
+ // then throw a "DataCloneError" DOMException.
+ if self.is_detached() {
+ return Err(());
+ }
+
+ // Step 2. Set dataHolder.[[BitmapData]] to value's bitmap data.
+ // Step 3. Unset value's bitmap data.
+ let serialized = SerializableImageBitmap {
+ width: self.width,
+ height: self.height,
+ bitmap_data: self.bitmap_data.borrow_mut().take().unwrap(),
+ };
+
+ Ok((ImageBitmapId::new(), serialized))
+ }
+
+ /// <https://html.spec.whatwg.org/multipage/#the-imagebitmap-interface:transfer-receiving-steps>
+ fn transfer_receive(
+ owner: &GlobalScope,
+ _: ImageBitmapId,
+ serialized: SerializableImageBitmap,
+ ) -> Result<DomRoot<Self>, ()> {
+ let image_bitmap =
+ ImageBitmap::new(owner, serialized.width, serialized.height, CanGc::note());
+
+ // Step 1. Set value's bitmap data to serialized.[[BitmapData]].
+ image_bitmap.set_bitmap_data(serialized.bitmap_data);
+
+ Ok(image_bitmap)
+ }
+
+ fn serialized_storage<'a>(
+ data: StructuredData<'a, '_>,
+ ) -> &'a mut Option<HashMap<ImageBitmapId, Self::Data>> {
+ match data {
+ StructuredData::Reader(r) => &mut r.transferred_image_bitmaps,
+ StructuredData::Writer(w) => &mut w.transferred_image_bitmaps,
+ }
+ }
+}
+
impl ImageBitmapMethods<crate::DomTypeHolder> for ImageBitmap {
/// <https://html.spec.whatwg.org/multipage/#dom-imagebitmap-height>
fn Height(&self) -> u32 {
diff --git a/components/script_bindings/codegen/CodegenRust.py b/components/script_bindings/codegen/CodegenRust.py
index 20d6d30681e..37d62ff2e1b 100644
--- a/components/script_bindings/codegen/CodegenRust.py
+++ b/components/script_bindings/codegen/CodegenRust.py
@@ -39,6 +39,7 @@ from WebIDL import (
from Configuration import (
Configuration,
Descriptor,
+ DescriptorProvider,
MakeNativeName,
MemberIsLegacyUnforgeable,
getModuleFromObject,
@@ -617,16 +618,16 @@ class JSToNativeConversionInfo():
def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None,
- isDefinitelyObject=False,
- isMember=False,
+ isDefinitelyObject: bool = False,
+ isMember: bool | str = False,
isArgument=False,
isAutoRooted=False,
invalidEnumValueFatal=True,
defaultValue=None,
exceptionCode=None,
- allowTreatNonObjectAsNull=False,
+ allowTreatNonObjectAsNull: bool = False,
isCallbackReturnValue=False,
- sourceDescription="value"):
+ sourceDescription="value") -> JSToNativeConversionInfo:
"""
Get a template for converting a JS value to a native object based on the
given type and descriptor. If failureCode is given, then we're actually
@@ -5071,7 +5072,7 @@ class CGConstant(CGThing):
return f"pub const {name}: {const_type} = {value};\n"
-def getUnionTypeTemplateVars(type, descriptorProvider):
+def getUnionTypeTemplateVars(type, descriptorProvider: DescriptorProvider):
if type.isGeckoInterface():
name = type.inner.identifier.name
typeName = descriptorProvider.getDescriptor(name).returnType
@@ -5108,6 +5109,12 @@ def getUnionTypeTemplateVars(type, descriptorProvider):
elif type.isCallback():
name = type.name
typeName = f"{name}<D>"
+ elif type.isUndefined():
+ return {
+ "name": type.name,
+ "typeName": "()",
+ "jsConversion": CGGeneric("if value.is_undefined() { Ok(Some(())) } else { Ok(None) }")
+ }
else:
raise TypeError(f"Can't handle {type} in unions yet")
@@ -5173,7 +5180,7 @@ impl{self.generic} Clone for {self.type}{self.genericSuffix} {{
def manualImpl(self, t, templateVars):
if t == "Clone":
return self.manualImplClone(templateVars)
- raise f"Don't know how to impl {t} for union"
+ raise ValueError(f"Don't know how to impl {t} for union")
def define(self):
def getTypeWrapper(t):
@@ -5330,31 +5337,44 @@ class CGUnionConversionStruct(CGThing):
stringTypes = [t for t in memberTypes if t.isString() or t.isEnum()]
numericTypes = [t for t in memberTypes if t.isNumeric()]
booleanTypes = [t for t in memberTypes if t.isBoolean()]
- if stringTypes or numericTypes or booleanTypes:
+ numUndefinedVariants = [t.isUndefined() for t in memberTypes].count(True)
+ if stringTypes or numericTypes or booleanTypes or numUndefinedVariants != 0:
assert len(stringTypes) <= 1
assert len(numericTypes) <= 1
assert len(booleanTypes) <= 1
+ assert numUndefinedVariants <= 1
def getStringOrPrimitiveConversion(memberType):
typename = get_name(memberType)
return CGGeneric(get_match(typename))
+
other = []
stringConversion = list(map(getStringOrPrimitiveConversion, stringTypes))
numericConversion = list(map(getStringOrPrimitiveConversion, numericTypes))
booleanConversion = list(map(getStringOrPrimitiveConversion, booleanTypes))
+ undefinedConversion = CGGeneric("return Ok(ConversionResult::Success(Self::Undefined(())));")
+
if stringConversion:
if booleanConversion:
other.append(CGIfWrapper("value.get().is_boolean()", booleanConversion[0]))
if numericConversion:
other.append(CGIfWrapper("value.get().is_number()", numericConversion[0]))
+ if numUndefinedVariants != 0:
+ other.append(CGIfWrapper("value.get().is_undefined()", undefinedConversion))
other.append(stringConversion[0])
elif numericConversion:
if booleanConversion:
other.append(CGIfWrapper("value.get().is_boolean()", booleanConversion[0]))
+ if numUndefinedVariants != 0:
+ other.append(CGIfWrapper("value.get().is_undefined()", undefinedConversion))
other.append(numericConversion[0])
- else:
- assert booleanConversion
+ elif booleanConversion:
+ if numUndefinedVariants != 0:
+ other.append(CGIfWrapper("value.get().is_undefined()", undefinedConversion))
other.append(booleanConversion[0])
+ else:
+ assert numUndefinedVariants != 0
+ other.append(undefinedConversion)
conversions.append(CGList(other, "\n\n"))
conversions.append(CGGeneric(
f'Ok(ConversionResult::Failure("argument could not be converted to any of: {", ".join(names)}".into()))'
@@ -5376,6 +5396,10 @@ class CGUnionConversionStruct(CGThing):
post="\n}")
def try_method(self, t):
+ if t.isUndefined():
+ # undefined does not require a conversion method, so we don't generate one
+ return CGGeneric("")
+
templateVars = getUnionTypeTemplateVars(t, self.descriptorProvider)
actualType = templateVars["typeName"]
if type_needs_tracing(t):
@@ -7151,7 +7175,7 @@ impl{self.generic} Clone for {self.makeClassName(self.dictionary)}{self.genericS
def manualImpl(self, t):
if t == "Clone":
return self.manualImplClone()
- raise f"Don't know how to impl {t} for dicts."
+ raise ValueError(f"Don't know how to impl {t} for dicts.")
def struct(self):
d = self.dictionary
diff --git a/components/script_bindings/webidls/ImageBitmap.webidl b/components/script_bindings/webidls/ImageBitmap.webidl
index aaa35c67995..b9b811eb9bd 100644
--- a/components/script_bindings/webidls/ImageBitmap.webidl
+++ b/components/script_bindings/webidls/ImageBitmap.webidl
@@ -9,8 +9,7 @@
* You are granted a license to use, reproduce and create derivative works of this document.
*/
-//[Exposed=(Window,Worker), Serializable, Transferable]
-[Exposed=(Window,Worker), Pref="dom_imagebitmap_enabled"]
+[Exposed=(Window,Worker), Serializable, Transferable, Pref="dom_imagebitmap_enabled"]
interface ImageBitmap {
readonly attribute unsigned long width;
readonly attribute unsigned long height;
diff --git a/components/script_bindings/webidls/TestBinding.webidl b/components/script_bindings/webidls/TestBinding.webidl
index f2c45313228..33ba2f41fbb 100644
--- a/components/script_bindings/webidls/TestBinding.webidl
+++ b/components/script_bindings/webidls/TestBinding.webidl
@@ -627,3 +627,6 @@ dictionary NotUsedAnyWhereElse {};
dictionary RecordFieldWithUnionInside {
record<USVString, (USVString or NotUsedAnyWhereElse)> recordWithUnionField;
};
+
+// https://github.com/servo/servo/issues/28679
+typedef (USVString or undefined) UnionWithUndefinedVariant;
diff --git a/components/shared/base/id.rs b/components/shared/base/id.rs
index b6ad1b3de9b..a091311d237 100644
--- a/components/shared/base/id.rs
+++ b/components/shared/base/id.rs
@@ -371,6 +371,8 @@ namespace_id! {DomExceptionId, DomExceptionIndex, "DomException"}
namespace_id! {HistoryStateId, HistoryStateIndex, "HistoryState"}
+namespace_id! {ImageBitmapId, ImageBitmapIndex, "ImageBitmap"}
+
// We provide ids just for unit testing.
pub const TEST_NAMESPACE: PipelineNamespaceId = PipelineNamespaceId(1234);
#[allow(unsafe_code)]
diff --git a/components/shared/constellation/structured_data/mod.rs b/components/shared/constellation/structured_data/mod.rs
index 81e3849e476..3ea0d78eaf3 100644
--- a/components/shared/constellation/structured_data/mod.rs
+++ b/components/shared/constellation/structured_data/mod.rs
@@ -10,7 +10,7 @@ mod transferable;
use std::collections::HashMap;
-use base::id::{BlobId, DomExceptionId, DomPointId, MessagePortId};
+use base::id::{BlobId, DomExceptionId, DomPointId, ImageBitmapId, MessagePortId};
use log::warn;
use malloc_size_of_derive::MallocSizeOf;
use serde::{Deserialize, Serialize};
@@ -34,6 +34,10 @@ pub struct StructuredSerializedData {
pub ports: Option<HashMap<MessagePortId, MessagePortImpl>>,
/// Transform streams transferred objects.
pub transform_streams: Option<HashMap<MessagePortId, TransformStreamData>>,
+ /// Serialized image bitmap objects.
+ pub image_bitmaps: Option<HashMap<ImageBitmapId, SerializableImageBitmap>>,
+ /// Transferred image bitmap objects.
+ pub transferred_image_bitmaps: Option<HashMap<ImageBitmapId, SerializableImageBitmap>>,
}
impl StructuredSerializedData {
@@ -42,6 +46,7 @@ impl StructuredSerializedData {
field.as_ref().is_some_and(|h| h.is_empty())
}
match val {
+ Transferrable::ImageBitmap => is_field_empty(&self.transferred_image_bitmaps),
Transferrable::MessagePort => is_field_empty(&self.ports),
Transferrable::ReadableStream => is_field_empty(&self.ports),
Transferrable::WritableStream => is_field_empty(&self.ports),
diff --git a/components/shared/constellation/structured_data/serializable.rs b/components/shared/constellation/structured_data/serializable.rs
index 22370087665..cbb932c52ec 100644
--- a/components/shared/constellation/structured_data/serializable.rs
+++ b/components/shared/constellation/structured_data/serializable.rs
@@ -11,7 +11,7 @@ use std::cell::RefCell;
use std::collections::HashMap;
use std::path::PathBuf;
-use base::id::{BlobId, DomExceptionId, DomPointId};
+use base::id::{BlobId, DomExceptionId, DomPointId, ImageBitmapId};
use malloc_size_of_derive::MallocSizeOf;
use net_traits::filemanager_thread::RelativePos;
use serde::{Deserialize, Serialize};
@@ -47,6 +47,8 @@ pub enum Serializable {
DomPointReadOnly,
/// The `DOMException` interface.
DomException,
+ /// The `ImageBitmap` interface.
+ ImageBitmap,
}
impl Serializable {
@@ -62,6 +64,9 @@ impl Serializable {
Serializable::DomException => {
StructuredSerializedData::clone_all_of_type::<DomException>
},
+ Serializable::ImageBitmap => {
+ StructuredSerializedData::clone_all_of_type::<SerializableImageBitmap>
+ },
}
}
}
@@ -312,3 +317,31 @@ impl BroadcastClone for DomException {
Some(self.clone())
}
}
+
+#[derive(Clone, Debug, Deserialize, MallocSizeOf, Serialize)]
+/// A serializable version of the ImageBitmap interface.
+pub struct SerializableImageBitmap {
+ pub width: u32,
+ pub height: u32,
+ pub bitmap_data: Vec<u8>,
+}
+
+impl BroadcastClone for SerializableImageBitmap {
+ type Id = ImageBitmapId;
+
+ fn source(
+ data: &StructuredSerializedData,
+ ) -> &Option<std::collections::HashMap<Self::Id, Self>> {
+ &data.image_bitmaps
+ }
+
+ fn destination(
+ data: &mut StructuredSerializedData,
+ ) -> &mut Option<std::collections::HashMap<Self::Id, Self>> {
+ &mut data.image_bitmaps
+ }
+
+ fn clone_for_broadcast(&self) -> Option<Self> {
+ Some(self.clone())
+ }
+}
diff --git a/components/shared/constellation/structured_data/transferable.rs b/components/shared/constellation/structured_data/transferable.rs
index 3210a41a538..bce10420182 100644
--- a/components/shared/constellation/structured_data/transferable.rs
+++ b/components/shared/constellation/structured_data/transferable.rs
@@ -24,6 +24,8 @@ pub struct TransformStreamData {
/// All the DOM interfaces that can be transferred.
#[derive(Clone, Copy, Debug, EnumIter)]
pub enum Transferrable {
+ /// The `ImageBitmap` interface.
+ ImageBitmap,
/// The `MessagePort` interface.
MessagePort,
/// The `ReadableStream` interface.
diff --git a/support/openharmony/entry/src/main/ets/pages/Index.ets b/support/openharmony/entry/src/main/ets/pages/Index.ets
index 1d84d4478db..9c6cb06537b 100644
--- a/support/openharmony/entry/src/main/ets/pages/Index.ets
+++ b/support/openharmony/entry/src/main/ets/pages/Index.ets
@@ -76,7 +76,10 @@ struct Index {
}
build() {
- Column() {
+ // We originally use `Column()` here, but for some reason the column
+ // extends beyond the edge of the screen. This does not happen with
+ // Flex.
+ Flex({ direction: FlexDirection.Column}) {
Row() {
Button('⇦').backgroundColor(Color.White)
.fontColor(Color.Black)
diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json
index 8f64883c6be..59a4cc1cfd8 100644
--- a/tests/wpt/meta/MANIFEST.json
+++ b/tests/wpt/meta/MANIFEST.json
@@ -119171,6 +119171,19 @@
{}
]
],
+ "z-index-020.html": [
+ "34a7272a2541e779c487fe3501d6e6cd3f751f51",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-200px-square.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"z-index-abspos-001.xht": [
"63a44d15a7dce6e1a2df6124ff1064d0a68392ab",
[
diff --git a/tests/wpt/meta/css/CSS2/backgrounds/background-bg-pos-206.xht.ini b/tests/wpt/meta/css/CSS2/backgrounds/background-bg-pos-206.xht.ini
deleted file mode 100644
index 07839d4c3ae..00000000000
--- a/tests/wpt/meta/css/CSS2/backgrounds/background-bg-pos-206.xht.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[background-bg-pos-206.xht]
- expected: FAIL
diff --git a/tests/wpt/meta/html/browsers/history/the-history-interface/001.html.ini b/tests/wpt/meta/html/browsers/history/the-history-interface/001.html.ini
deleted file mode 100644
index 1c088011cf9..00000000000
--- a/tests/wpt/meta/html/browsers/history/the-history-interface/001.html.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[001.html]
- type: testharness
- disabled: https://github.com/servo/servo/issues/12580
- [history.length should update when setting location.hash]
- expected: FAIL
-
diff --git a/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini b/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini
index 4234bcb2133..7652318fd58 100644
--- a/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini
+++ b/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini
@@ -5,15 +5,9 @@
[Serialize ImageBitmap created from an HTMLVideoElement]
expected: FAIL
- [Serialize ImageBitmap created from an HTMLCanvasElement]
- expected: FAIL
-
[Serialize ImageBitmap created from an HTMLVideoElement from a data URL]
expected: FAIL
- [Serialize ImageBitmap created from an OffscreenCanvas]
- expected: FAIL
-
[Serialize ImageBitmap created from a vector HTMLImageElement]
expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini b/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini
index cff84fd3a26..20be1f3b9e5 100644
--- a/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini
+++ b/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini
@@ -11,12 +11,6 @@
[Transfer ImageBitmap created from a Blob]
expected: FAIL
- [Transfer ImageBitmap created from an HTMLCanvasElement]
- expected: FAIL
-
- [Transfer ImageBitmap created from an OffscreenCanvas]
- expected: FAIL
-
[Transfer ImageBitmap created from a bitmap HTMLImageElement]
expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w.html.ini b/tests/wpt/meta/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w.html.ini
index 82b9523635b..6e55bcfc0d1 100644
--- a/tests/wpt/meta/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w.html.ini
+++ b/tests/wpt/meta/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w.html.ini
@@ -1,3 +1,4 @@
[offscreencanvas.filter.w.html]
+ expected: ERROR
[offscreencanvas]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/html/dom/reflection-embedded.html.ini b/tests/wpt/meta/html/dom/reflection-embedded.html.ini
index 3a3b8bdb55e..679057f2794 100644
--- a/tests/wpt/meta/html/dom/reflection-embedded.html.ini
+++ b/tests/wpt/meta/html/dom/reflection-embedded.html.ini
@@ -1,3 +1,8802 @@
[reflection-embedded.html]
- type: testharness
- disabled: https://github.com/servo/servo/issues/11100
+ [picture.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [picture.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [picture.accessKey: 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 "]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [picture.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [picture.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to true]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to false]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to null]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [picture.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [picture.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [picture.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [picture.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [picture.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [picture.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [picture.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [picture.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [picture.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [img.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [img.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [img.accessKey: 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 "]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [img.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [img.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [img.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [img.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [img.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [img.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [img.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [img.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [img.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [img.accessKey: IDL set to true]
+ expected: FAIL
+
+ [img.accessKey: IDL set to false]
+ expected: FAIL
+
+ [img.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [img.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [img.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [img.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [img.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [img.accessKey: IDL set to null]
+ expected: FAIL
+
+ [img.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [img.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [img.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [img.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [img.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [img.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [img.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [img.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [img.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [img.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to ""]
+ expected: FAIL
+
+ [img.srcset: 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 "]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to undefined]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to 7]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to 1.5]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to "5%"]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to "+100"]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to ".5"]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to true]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to false]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to NaN]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to Infinity]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to null]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [img.srcset: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [img.srcset: IDL set to ""]
+ expected: FAIL
+
+ [img.srcset: IDL set 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 "]
+ expected: FAIL
+
+ [img.srcset: IDL set to undefined]
+ expected: FAIL
+
+ [img.srcset: IDL set to 7]
+ expected: FAIL
+
+ [img.srcset: IDL set to 1.5]
+ expected: FAIL
+
+ [img.srcset: IDL set to "5%"]
+ expected: FAIL
+
+ [img.srcset: IDL set to "+100"]
+ expected: FAIL
+
+ [img.srcset: IDL set to ".5"]
+ expected: FAIL
+
+ [img.srcset: IDL set to true]
+ expected: FAIL
+
+ [img.srcset: IDL set to false]
+ expected: FAIL
+
+ [img.srcset: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [img.srcset: IDL set to NaN]
+ expected: FAIL
+
+ [img.srcset: IDL set to Infinity]
+ expected: FAIL
+
+ [img.srcset: IDL set to -Infinity]
+ expected: FAIL
+
+ [img.srcset: IDL set to "\\0"]
+ expected: FAIL
+
+ [img.srcset: IDL set to null]
+ expected: FAIL
+
+ [img.srcset: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [img.srcset: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to ""]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set 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 "]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to undefined]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to 7]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to 1.5]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "5%"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "+100"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to ".5"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to true]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to false]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to NaN]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to Infinity]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to -Infinity]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "\\0"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "xno-referrer"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "no-referrer\\0"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "o-referrer"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "NO-REFERRER"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "xno-referrer-when-downgrade"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "no-referrer-when-downgrade\\0"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "o-referrer-when-downgrade"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "NO-REFERRER-WHEN-DOWNGRADE"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "xsame-origin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "same-origin\\0"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "ame-origin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "SAME-ORIGIN"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "ſame-origin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "xorigin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "origin\\0"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "rigin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "ORIGIN"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "xstrict-origin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "strict-origin\\0"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "trict-origin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "STRICT-ORIGIN"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "ſtrict-origin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "xorigin-when-cross-origin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "origin-when-cross-origin\\0"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "rigin-when-cross-origin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "ORIGIN-WHEN-CROSS-ORIGIN"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "origin-when-croſſ-origin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "xstrict-origin-when-cross-origin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "strict-origin-when-cross-origin\\0"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "trict-origin-when-cross-origin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "STRICT-ORIGIN-WHEN-CROSS-ORIGIN"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "ſtrict-origin-when-croſſ-origin"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "xunsafe-url"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "unsafe-url\\0"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "nsafe-url"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "UNSAFE-URL"]
+ expected: FAIL
+
+ [img.referrerPolicy: IDL set to "unſafe-url"]
+ expected: FAIL
+
+ [img.decoding: typeof IDL attribute]
+ expected: FAIL
+
+ [img.decoding: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to ""]
+ expected: FAIL
+
+ [img.decoding: 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 "]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to undefined]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to 7]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to 1.5]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "5%"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "+100"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to ".5"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to true]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to false]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to NaN]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to Infinity]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to null]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "async"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "xasync"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "async\\0"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "ASYNC"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "aſync"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "sync"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "xsync"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "sync\\0"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "ync"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "SYNC"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "ſync"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "auto"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "xauto"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "auto\\0"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "uto"]
+ expected: FAIL
+
+ [img.decoding: setAttribute() to "AUTO"]
+ expected: FAIL
+
+ [img.decoding: IDL set to ""]
+ expected: FAIL
+
+ [img.decoding: IDL set 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 "]
+ expected: FAIL
+
+ [img.decoding: IDL set to undefined]
+ expected: FAIL
+
+ [img.decoding: IDL set to 7]
+ expected: FAIL
+
+ [img.decoding: IDL set to 1.5]
+ expected: FAIL
+
+ [img.decoding: IDL set to "5%"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "+100"]
+ expected: FAIL
+
+ [img.decoding: IDL set to ".5"]
+ expected: FAIL
+
+ [img.decoding: IDL set to true]
+ expected: FAIL
+
+ [img.decoding: IDL set to false]
+ expected: FAIL
+
+ [img.decoding: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [img.decoding: IDL set to NaN]
+ expected: FAIL
+
+ [img.decoding: IDL set to Infinity]
+ expected: FAIL
+
+ [img.decoding: IDL set to -Infinity]
+ expected: FAIL
+
+ [img.decoding: IDL set to "\\0"]
+ expected: FAIL
+
+ [img.decoding: IDL set to null]
+ expected: FAIL
+
+ [img.decoding: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [img.decoding: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "async"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "xasync"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "async\\0"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "ASYNC"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "aſync"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "sync"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "xsync"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "sync\\0"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "ync"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "SYNC"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "ſync"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "auto"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "xauto"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "auto\\0"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "uto"]
+ expected: FAIL
+
+ [img.decoding: IDL set to "AUTO"]
+ expected: FAIL
+
+ [img.lowsrc: typeof IDL attribute]
+ expected: FAIL
+
+ [img.lowsrc: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to ""]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to " foo "]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to "http://site.example/"]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [img.lowsrc: 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 "]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to undefined]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to 7]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to 1.5]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to "5%"]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to "+100"]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to ".5"]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to true]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to false]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to NaN]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to Infinity]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to null]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [img.lowsrc: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to ""]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to " foo "]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to "http://site.example/"]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [img.lowsrc: IDL set 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 "]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to undefined]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to 7]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to 1.5]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to "5%"]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to "+100"]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to ".5"]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to true]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to false]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to NaN]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to Infinity]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to -Infinity]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to "\\0"]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to null]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [img.lowsrc: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to ""]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to " foo "]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [img.longDesc: 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 "]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to undefined]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to 7]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to 1.5]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to "5%"]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to "+100"]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to ".5"]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to true]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to false]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to NaN]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to Infinity]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to null]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [img.longDesc: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [img.longDesc: IDL set to ""]
+ expected: FAIL
+
+ [img.longDesc: IDL set to " foo "]
+ expected: FAIL
+
+ [img.longDesc: IDL set to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [img.longDesc: IDL set 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 "]
+ expected: FAIL
+
+ [img.longDesc: IDL set to undefined]
+ expected: FAIL
+
+ [img.longDesc: IDL set to 7]
+ expected: FAIL
+
+ [img.longDesc: IDL set to 1.5]
+ expected: FAIL
+
+ [img.longDesc: IDL set to "5%"]
+ expected: FAIL
+
+ [img.longDesc: IDL set to "+100"]
+ expected: FAIL
+
+ [img.longDesc: IDL set to ".5"]
+ expected: FAIL
+
+ [img.longDesc: IDL set to true]
+ expected: FAIL
+
+ [img.longDesc: IDL set to false]
+ expected: FAIL
+
+ [img.longDesc: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [img.longDesc: IDL set to NaN]
+ expected: FAIL
+
+ [img.longDesc: IDL set to Infinity]
+ expected: FAIL
+
+ [img.longDesc: IDL set to -Infinity]
+ expected: FAIL
+
+ [img.longDesc: IDL set to "\\0"]
+ expected: FAIL
+
+ [img.longDesc: IDL set to null]
+ expected: FAIL
+
+ [img.longDesc: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [img.longDesc: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [iframe.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [iframe.accessKey: 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 "]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [iframe.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to true]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to false]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to null]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [iframe.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [iframe.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [iframe.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [iframe.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [iframe.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [iframe.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [iframe.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [iframe.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [iframe.allowUserMedia: typeof IDL attribute]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to ""]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to " foo "]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to undefined]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to null]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to 7]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to 1.5]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to "5%"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to "+100"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to ".5"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to true]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to false]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to NaN]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to Infinity]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: setAttribute() to "allowUserMedia"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to ""]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to " foo "]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to undefined]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to null]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to 7]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to 1.5]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to "5%"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to "+100"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to ".5"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to false]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to NaN]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to Infinity]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to -Infinity]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to "\\0"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [iframe.allowUserMedia: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: typeof IDL attribute]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: setAttribute() to "vibration"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: setAttribute() to "VIBRATION"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: setAttribute() to "media"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: setAttribute() to "MEDIA"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to ""]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set 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 "]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to undefined]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to 7]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to 1.5]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "5%"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "+100"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to ".5"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to true]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to false]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to NaN]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to Infinity]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to -Infinity]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "\\0"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "vibration"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "xvibration"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "vibration\\0"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "ibration"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "VIBRATION"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "media"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "xmedia"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "media\\0"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "edia"]
+ expected: FAIL
+
+ [iframe.delegateStickyUserActivation: IDL set to "MEDIA"]
+ expected: FAIL
+
+ [iframe.align: typeof IDL attribute]
+ expected: FAIL
+
+ [iframe.align: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to ""]
+ expected: FAIL
+
+ [iframe.align: 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 "]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to undefined]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to 7]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to 1.5]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to "5%"]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to "+100"]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to ".5"]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to true]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to false]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to NaN]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to Infinity]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to null]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [iframe.align: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.align: IDL set to ""]
+ expected: FAIL
+
+ [iframe.align: IDL set 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 "]
+ expected: FAIL
+
+ [iframe.align: IDL set to undefined]
+ expected: FAIL
+
+ [iframe.align: IDL set to 7]
+ expected: FAIL
+
+ [iframe.align: IDL set to 1.5]
+ expected: FAIL
+
+ [iframe.align: IDL set to "5%"]
+ expected: FAIL
+
+ [iframe.align: IDL set to "+100"]
+ expected: FAIL
+
+ [iframe.align: IDL set to ".5"]
+ expected: FAIL
+
+ [iframe.align: IDL set to true]
+ expected: FAIL
+
+ [iframe.align: IDL set to false]
+ expected: FAIL
+
+ [iframe.align: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.align: IDL set to NaN]
+ expected: FAIL
+
+ [iframe.align: IDL set to Infinity]
+ expected: FAIL
+
+ [iframe.align: IDL set to -Infinity]
+ expected: FAIL
+
+ [iframe.align: IDL set to "\\0"]
+ expected: FAIL
+
+ [iframe.align: IDL set to null]
+ expected: FAIL
+
+ [iframe.align: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [iframe.align: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.scrolling: typeof IDL attribute]
+ expected: FAIL
+
+ [iframe.scrolling: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to ""]
+ expected: FAIL
+
+ [iframe.scrolling: 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 "]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to undefined]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to 7]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to 1.5]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to "5%"]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to "+100"]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to ".5"]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to true]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to false]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to NaN]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to Infinity]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to null]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [iframe.scrolling: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to ""]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set 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 "]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to undefined]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to 7]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to 1.5]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to "5%"]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to "+100"]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to ".5"]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to true]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to false]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to NaN]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to Infinity]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to -Infinity]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to "\\0"]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to null]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [iframe.scrolling: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.longDesc: typeof IDL attribute]
+ expected: FAIL
+
+ [iframe.longDesc: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to ""]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to " foo "]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to "http://site.example/"]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [iframe.longDesc: 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 "]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to undefined]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to 7]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to 1.5]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to "5%"]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to "+100"]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to ".5"]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to true]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to false]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to NaN]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to Infinity]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to null]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [iframe.longDesc: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to ""]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to " foo "]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to "http://site.example/"]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set 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 "]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to undefined]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to 7]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to 1.5]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to "5%"]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to "+100"]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to ".5"]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to true]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to false]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to NaN]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to Infinity]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to -Infinity]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to "\\0"]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to null]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [iframe.longDesc: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.marginHeight: typeof IDL attribute]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to ""]
+ expected: FAIL
+
+ [iframe.marginHeight: 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 "]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to undefined]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to 7]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to 1.5]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to "5%"]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to "+100"]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to ".5"]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to true]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to false]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to NaN]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to Infinity]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to null]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [iframe.marginHeight: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to ""]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set 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 "]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to undefined]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to 7]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to 1.5]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to "5%"]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to "+100"]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to ".5"]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to true]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to false]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to NaN]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to Infinity]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to -Infinity]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to "\\0"]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to null]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [iframe.marginHeight: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.marginWidth: typeof IDL attribute]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to ""]
+ expected: FAIL
+
+ [iframe.marginWidth: 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 "]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to undefined]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to 7]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to 1.5]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to "5%"]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to "+100"]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to ".5"]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to true]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to false]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to NaN]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to Infinity]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to null]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [iframe.marginWidth: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to ""]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set 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 "]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to undefined]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to 7]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to 1.5]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to "5%"]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to "+100"]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to ".5"]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to true]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to false]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to NaN]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to Infinity]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to -Infinity]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to "\\0"]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to null]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [iframe.marginWidth: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [embed.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [embed.accessKey: 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 "]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [embed.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [embed.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to true]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to false]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to null]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [embed.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [embed.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [embed.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [embed.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [embed.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [embed.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [embed.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [embed.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [embed.src: typeof IDL attribute]
+ expected: FAIL
+
+ [embed.src: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [embed.src: setAttribute() to ""]
+ expected: FAIL
+
+ [embed.src: setAttribute() to " foo "]
+ expected: FAIL
+
+ [embed.src: setAttribute() to "http://site.example/"]
+ expected: FAIL
+
+ [embed.src: setAttribute() to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [embed.src: 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 "]
+ expected: FAIL
+
+ [embed.src: setAttribute() to undefined]
+ expected: FAIL
+
+ [embed.src: setAttribute() to 7]
+ expected: FAIL
+
+ [embed.src: setAttribute() to 1.5]
+ expected: FAIL
+
+ [embed.src: setAttribute() to "5%"]
+ expected: FAIL
+
+ [embed.src: setAttribute() to "+100"]
+ expected: FAIL
+
+ [embed.src: setAttribute() to ".5"]
+ expected: FAIL
+
+ [embed.src: setAttribute() to true]
+ expected: FAIL
+
+ [embed.src: setAttribute() to false]
+ expected: FAIL
+
+ [embed.src: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.src: setAttribute() to NaN]
+ expected: FAIL
+
+ [embed.src: setAttribute() to Infinity]
+ expected: FAIL
+
+ [embed.src: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [embed.src: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [embed.src: setAttribute() to null]
+ expected: FAIL
+
+ [embed.src: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [embed.src: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.src: IDL set to ""]
+ expected: FAIL
+
+ [embed.src: IDL set to " foo "]
+ expected: FAIL
+
+ [embed.src: IDL set to "http://site.example/"]
+ expected: FAIL
+
+ [embed.src: IDL set to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [embed.src: IDL set 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 "]
+ expected: FAIL
+
+ [embed.src: IDL set to undefined]
+ expected: FAIL
+
+ [embed.src: IDL set to 7]
+ expected: FAIL
+
+ [embed.src: IDL set to 1.5]
+ expected: FAIL
+
+ [embed.src: IDL set to "5%"]
+ expected: FAIL
+
+ [embed.src: IDL set to "+100"]
+ expected: FAIL
+
+ [embed.src: IDL set to ".5"]
+ expected: FAIL
+
+ [embed.src: IDL set to true]
+ expected: FAIL
+
+ [embed.src: IDL set to false]
+ expected: FAIL
+
+ [embed.src: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.src: IDL set to NaN]
+ expected: FAIL
+
+ [embed.src: IDL set to Infinity]
+ expected: FAIL
+
+ [embed.src: IDL set to -Infinity]
+ expected: FAIL
+
+ [embed.src: IDL set to "\\0"]
+ expected: FAIL
+
+ [embed.src: IDL set to null]
+ expected: FAIL
+
+ [embed.src: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [embed.src: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.type: typeof IDL attribute]
+ expected: FAIL
+
+ [embed.type: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [embed.type: setAttribute() to ""]
+ expected: FAIL
+
+ [embed.type: 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 "]
+ expected: FAIL
+
+ [embed.type: setAttribute() to undefined]
+ expected: FAIL
+
+ [embed.type: setAttribute() to 7]
+ expected: FAIL
+
+ [embed.type: setAttribute() to 1.5]
+ expected: FAIL
+
+ [embed.type: setAttribute() to "5%"]
+ expected: FAIL
+
+ [embed.type: setAttribute() to "+100"]
+ expected: FAIL
+
+ [embed.type: setAttribute() to ".5"]
+ expected: FAIL
+
+ [embed.type: setAttribute() to true]
+ expected: FAIL
+
+ [embed.type: setAttribute() to false]
+ expected: FAIL
+
+ [embed.type: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.type: setAttribute() to NaN]
+ expected: FAIL
+
+ [embed.type: setAttribute() to Infinity]
+ expected: FAIL
+
+ [embed.type: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [embed.type: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [embed.type: setAttribute() to null]
+ expected: FAIL
+
+ [embed.type: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [embed.type: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.type: IDL set to ""]
+ expected: FAIL
+
+ [embed.type: IDL set 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 "]
+ expected: FAIL
+
+ [embed.type: IDL set to undefined]
+ expected: FAIL
+
+ [embed.type: IDL set to 7]
+ expected: FAIL
+
+ [embed.type: IDL set to 1.5]
+ expected: FAIL
+
+ [embed.type: IDL set to "5%"]
+ expected: FAIL
+
+ [embed.type: IDL set to "+100"]
+ expected: FAIL
+
+ [embed.type: IDL set to ".5"]
+ expected: FAIL
+
+ [embed.type: IDL set to true]
+ expected: FAIL
+
+ [embed.type: IDL set to false]
+ expected: FAIL
+
+ [embed.type: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.type: IDL set to NaN]
+ expected: FAIL
+
+ [embed.type: IDL set to Infinity]
+ expected: FAIL
+
+ [embed.type: IDL set to -Infinity]
+ expected: FAIL
+
+ [embed.type: IDL set to "\\0"]
+ expected: FAIL
+
+ [embed.type: IDL set to null]
+ expected: FAIL
+
+ [embed.type: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [embed.type: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.width: typeof IDL attribute]
+ expected: FAIL
+
+ [embed.width: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [embed.width: setAttribute() to ""]
+ expected: FAIL
+
+ [embed.width: 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 "]
+ expected: FAIL
+
+ [embed.width: setAttribute() to undefined]
+ expected: FAIL
+
+ [embed.width: setAttribute() to 7]
+ expected: FAIL
+
+ [embed.width: setAttribute() to 1.5]
+ expected: FAIL
+
+ [embed.width: setAttribute() to "5%"]
+ expected: FAIL
+
+ [embed.width: setAttribute() to "+100"]
+ expected: FAIL
+
+ [embed.width: setAttribute() to ".5"]
+ expected: FAIL
+
+ [embed.width: setAttribute() to true]
+ expected: FAIL
+
+ [embed.width: setAttribute() to false]
+ expected: FAIL
+
+ [embed.width: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.width: setAttribute() to NaN]
+ expected: FAIL
+
+ [embed.width: setAttribute() to Infinity]
+ expected: FAIL
+
+ [embed.width: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [embed.width: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [embed.width: setAttribute() to null]
+ expected: FAIL
+
+ [embed.width: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [embed.width: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.width: IDL set to ""]
+ expected: FAIL
+
+ [embed.width: IDL set 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 "]
+ expected: FAIL
+
+ [embed.width: IDL set to undefined]
+ expected: FAIL
+
+ [embed.width: IDL set to 7]
+ expected: FAIL
+
+ [embed.width: IDL set to 1.5]
+ expected: FAIL
+
+ [embed.width: IDL set to "5%"]
+ expected: FAIL
+
+ [embed.width: IDL set to "+100"]
+ expected: FAIL
+
+ [embed.width: IDL set to ".5"]
+ expected: FAIL
+
+ [embed.width: IDL set to true]
+ expected: FAIL
+
+ [embed.width: IDL set to false]
+ expected: FAIL
+
+ [embed.width: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.width: IDL set to NaN]
+ expected: FAIL
+
+ [embed.width: IDL set to Infinity]
+ expected: FAIL
+
+ [embed.width: IDL set to -Infinity]
+ expected: FAIL
+
+ [embed.width: IDL set to "\\0"]
+ expected: FAIL
+
+ [embed.width: IDL set to null]
+ expected: FAIL
+
+ [embed.width: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [embed.width: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.height: typeof IDL attribute]
+ expected: FAIL
+
+ [embed.height: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [embed.height: setAttribute() to ""]
+ expected: FAIL
+
+ [embed.height: 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 "]
+ expected: FAIL
+
+ [embed.height: setAttribute() to undefined]
+ expected: FAIL
+
+ [embed.height: setAttribute() to 7]
+ expected: FAIL
+
+ [embed.height: setAttribute() to 1.5]
+ expected: FAIL
+
+ [embed.height: setAttribute() to "5%"]
+ expected: FAIL
+
+ [embed.height: setAttribute() to "+100"]
+ expected: FAIL
+
+ [embed.height: setAttribute() to ".5"]
+ expected: FAIL
+
+ [embed.height: setAttribute() to true]
+ expected: FAIL
+
+ [embed.height: setAttribute() to false]
+ expected: FAIL
+
+ [embed.height: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.height: setAttribute() to NaN]
+ expected: FAIL
+
+ [embed.height: setAttribute() to Infinity]
+ expected: FAIL
+
+ [embed.height: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [embed.height: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [embed.height: setAttribute() to null]
+ expected: FAIL
+
+ [embed.height: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [embed.height: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.height: IDL set to ""]
+ expected: FAIL
+
+ [embed.height: IDL set 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 "]
+ expected: FAIL
+
+ [embed.height: IDL set to undefined]
+ expected: FAIL
+
+ [embed.height: IDL set to 7]
+ expected: FAIL
+
+ [embed.height: IDL set to 1.5]
+ expected: FAIL
+
+ [embed.height: IDL set to "5%"]
+ expected: FAIL
+
+ [embed.height: IDL set to "+100"]
+ expected: FAIL
+
+ [embed.height: IDL set to ".5"]
+ expected: FAIL
+
+ [embed.height: IDL set to true]
+ expected: FAIL
+
+ [embed.height: IDL set to false]
+ expected: FAIL
+
+ [embed.height: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.height: IDL set to NaN]
+ expected: FAIL
+
+ [embed.height: IDL set to Infinity]
+ expected: FAIL
+
+ [embed.height: IDL set to -Infinity]
+ expected: FAIL
+
+ [embed.height: IDL set to "\\0"]
+ expected: FAIL
+
+ [embed.height: IDL set to null]
+ expected: FAIL
+
+ [embed.height: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [embed.height: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.align: typeof IDL attribute]
+ expected: FAIL
+
+ [embed.align: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [embed.align: setAttribute() to ""]
+ expected: FAIL
+
+ [embed.align: 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 "]
+ expected: FAIL
+
+ [embed.align: setAttribute() to undefined]
+ expected: FAIL
+
+ [embed.align: setAttribute() to 7]
+ expected: FAIL
+
+ [embed.align: setAttribute() to 1.5]
+ expected: FAIL
+
+ [embed.align: setAttribute() to "5%"]
+ expected: FAIL
+
+ [embed.align: setAttribute() to "+100"]
+ expected: FAIL
+
+ [embed.align: setAttribute() to ".5"]
+ expected: FAIL
+
+ [embed.align: setAttribute() to true]
+ expected: FAIL
+
+ [embed.align: setAttribute() to false]
+ expected: FAIL
+
+ [embed.align: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.align: setAttribute() to NaN]
+ expected: FAIL
+
+ [embed.align: setAttribute() to Infinity]
+ expected: FAIL
+
+ [embed.align: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [embed.align: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [embed.align: setAttribute() to null]
+ expected: FAIL
+
+ [embed.align: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [embed.align: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.align: IDL set to ""]
+ expected: FAIL
+
+ [embed.align: IDL set 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 "]
+ expected: FAIL
+
+ [embed.align: IDL set to undefined]
+ expected: FAIL
+
+ [embed.align: IDL set to 7]
+ expected: FAIL
+
+ [embed.align: IDL set to 1.5]
+ expected: FAIL
+
+ [embed.align: IDL set to "5%"]
+ expected: FAIL
+
+ [embed.align: IDL set to "+100"]
+ expected: FAIL
+
+ [embed.align: IDL set to ".5"]
+ expected: FAIL
+
+ [embed.align: IDL set to true]
+ expected: FAIL
+
+ [embed.align: IDL set to false]
+ expected: FAIL
+
+ [embed.align: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.align: IDL set to NaN]
+ expected: FAIL
+
+ [embed.align: IDL set to Infinity]
+ expected: FAIL
+
+ [embed.align: IDL set to -Infinity]
+ expected: FAIL
+
+ [embed.align: IDL set to "\\0"]
+ expected: FAIL
+
+ [embed.align: IDL set to null]
+ expected: FAIL
+
+ [embed.align: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [embed.align: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.name: typeof IDL attribute]
+ expected: FAIL
+
+ [embed.name: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [embed.name: setAttribute() to ""]
+ expected: FAIL
+
+ [embed.name: 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 "]
+ expected: FAIL
+
+ [embed.name: setAttribute() to undefined]
+ expected: FAIL
+
+ [embed.name: setAttribute() to 7]
+ expected: FAIL
+
+ [embed.name: setAttribute() to 1.5]
+ expected: FAIL
+
+ [embed.name: setAttribute() to "5%"]
+ expected: FAIL
+
+ [embed.name: setAttribute() to "+100"]
+ expected: FAIL
+
+ [embed.name: setAttribute() to ".5"]
+ expected: FAIL
+
+ [embed.name: setAttribute() to true]
+ expected: FAIL
+
+ [embed.name: setAttribute() to false]
+ expected: FAIL
+
+ [embed.name: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.name: setAttribute() to NaN]
+ expected: FAIL
+
+ [embed.name: setAttribute() to Infinity]
+ expected: FAIL
+
+ [embed.name: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [embed.name: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [embed.name: setAttribute() to null]
+ expected: FAIL
+
+ [embed.name: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [embed.name: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [embed.name: IDL set to ""]
+ expected: FAIL
+
+ [embed.name: IDL set 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 "]
+ expected: FAIL
+
+ [embed.name: IDL set to undefined]
+ expected: FAIL
+
+ [embed.name: IDL set to 7]
+ expected: FAIL
+
+ [embed.name: IDL set to 1.5]
+ expected: FAIL
+
+ [embed.name: IDL set to "5%"]
+ expected: FAIL
+
+ [embed.name: IDL set to "+100"]
+ expected: FAIL
+
+ [embed.name: IDL set to ".5"]
+ expected: FAIL
+
+ [embed.name: IDL set to true]
+ expected: FAIL
+
+ [embed.name: IDL set to false]
+ expected: FAIL
+
+ [embed.name: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [embed.name: IDL set to NaN]
+ expected: FAIL
+
+ [embed.name: IDL set to Infinity]
+ expected: FAIL
+
+ [embed.name: IDL set to -Infinity]
+ expected: FAIL
+
+ [embed.name: IDL set to "\\0"]
+ expected: FAIL
+
+ [embed.name: IDL set to null]
+ expected: FAIL
+
+ [embed.name: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [embed.name: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [object.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [object.accessKey: 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 "]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [object.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [object.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [object.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [object.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [object.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [object.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [object.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [object.accessKey: IDL set to true]
+ expected: FAIL
+
+ [object.accessKey: IDL set to false]
+ expected: FAIL
+
+ [object.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [object.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [object.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.accessKey: IDL set to null]
+ expected: FAIL
+
+ [object.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [object.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [object.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [object.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [object.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [object.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [object.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [object.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [object.data: typeof IDL attribute]
+ expected: FAIL
+
+ [object.data: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.data: setAttribute() to ""]
+ expected: FAIL
+
+ [object.data: setAttribute() to " foo "]
+ expected: FAIL
+
+ [object.data: setAttribute() to "http://site.example/"]
+ expected: FAIL
+
+ [object.data: setAttribute() to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [object.data: 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 "]
+ expected: FAIL
+
+ [object.data: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.data: setAttribute() to 7]
+ expected: FAIL
+
+ [object.data: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.data: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.data: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.data: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.data: setAttribute() to true]
+ expected: FAIL
+
+ [object.data: setAttribute() to false]
+ expected: FAIL
+
+ [object.data: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.data: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.data: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.data: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.data: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.data: setAttribute() to null]
+ expected: FAIL
+
+ [object.data: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.data: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.data: IDL set to ""]
+ expected: FAIL
+
+ [object.data: IDL set to " foo "]
+ expected: FAIL
+
+ [object.data: IDL set to "http://site.example/"]
+ expected: FAIL
+
+ [object.data: IDL set to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [object.data: IDL set 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 "]
+ expected: FAIL
+
+ [object.data: IDL set to undefined]
+ expected: FAIL
+
+ [object.data: IDL set to 7]
+ expected: FAIL
+
+ [object.data: IDL set to 1.5]
+ expected: FAIL
+
+ [object.data: IDL set to "5%"]
+ expected: FAIL
+
+ [object.data: IDL set to "+100"]
+ expected: FAIL
+
+ [object.data: IDL set to ".5"]
+ expected: FAIL
+
+ [object.data: IDL set to true]
+ expected: FAIL
+
+ [object.data: IDL set to false]
+ expected: FAIL
+
+ [object.data: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.data: IDL set to NaN]
+ expected: FAIL
+
+ [object.data: IDL set to Infinity]
+ expected: FAIL
+
+ [object.data: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.data: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.data: IDL set to null]
+ expected: FAIL
+
+ [object.data: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.data: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.name: typeof IDL attribute]
+ expected: FAIL
+
+ [object.name: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.name: setAttribute() to ""]
+ expected: FAIL
+
+ [object.name: 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 "]
+ expected: FAIL
+
+ [object.name: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.name: setAttribute() to 7]
+ expected: FAIL
+
+ [object.name: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.name: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.name: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.name: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.name: setAttribute() to true]
+ expected: FAIL
+
+ [object.name: setAttribute() to false]
+ expected: FAIL
+
+ [object.name: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.name: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.name: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.name: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.name: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.name: setAttribute() to null]
+ expected: FAIL
+
+ [object.name: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.name: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.name: IDL set to ""]
+ expected: FAIL
+
+ [object.name: IDL set 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 "]
+ expected: FAIL
+
+ [object.name: IDL set to undefined]
+ expected: FAIL
+
+ [object.name: IDL set to 7]
+ expected: FAIL
+
+ [object.name: IDL set to 1.5]
+ expected: FAIL
+
+ [object.name: IDL set to "5%"]
+ expected: FAIL
+
+ [object.name: IDL set to "+100"]
+ expected: FAIL
+
+ [object.name: IDL set to ".5"]
+ expected: FAIL
+
+ [object.name: IDL set to true]
+ expected: FAIL
+
+ [object.name: IDL set to false]
+ expected: FAIL
+
+ [object.name: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.name: IDL set to NaN]
+ expected: FAIL
+
+ [object.name: IDL set to Infinity]
+ expected: FAIL
+
+ [object.name: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.name: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.name: IDL set to null]
+ expected: FAIL
+
+ [object.name: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.name: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.useMap: typeof IDL attribute]
+ expected: FAIL
+
+ [object.useMap: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to ""]
+ expected: FAIL
+
+ [object.useMap: 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 "]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to 7]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to true]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to false]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to null]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.useMap: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.useMap: IDL set to ""]
+ expected: FAIL
+
+ [object.useMap: IDL set 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 "]
+ expected: FAIL
+
+ [object.useMap: IDL set to undefined]
+ expected: FAIL
+
+ [object.useMap: IDL set to 7]
+ expected: FAIL
+
+ [object.useMap: IDL set to 1.5]
+ expected: FAIL
+
+ [object.useMap: IDL set to "5%"]
+ expected: FAIL
+
+ [object.useMap: IDL set to "+100"]
+ expected: FAIL
+
+ [object.useMap: IDL set to ".5"]
+ expected: FAIL
+
+ [object.useMap: IDL set to true]
+ expected: FAIL
+
+ [object.useMap: IDL set to false]
+ expected: FAIL
+
+ [object.useMap: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.useMap: IDL set to NaN]
+ expected: FAIL
+
+ [object.useMap: IDL set to Infinity]
+ expected: FAIL
+
+ [object.useMap: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.useMap: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.useMap: IDL set to null]
+ expected: FAIL
+
+ [object.useMap: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.useMap: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.width: typeof IDL attribute]
+ expected: FAIL
+
+ [object.width: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.width: setAttribute() to ""]
+ expected: FAIL
+
+ [object.width: 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 "]
+ expected: FAIL
+
+ [object.width: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.width: setAttribute() to 7]
+ expected: FAIL
+
+ [object.width: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.width: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.width: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.width: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.width: setAttribute() to true]
+ expected: FAIL
+
+ [object.width: setAttribute() to false]
+ expected: FAIL
+
+ [object.width: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.width: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.width: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.width: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.width: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.width: setAttribute() to null]
+ expected: FAIL
+
+ [object.width: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.width: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.width: IDL set to ""]
+ expected: FAIL
+
+ [object.width: IDL set 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 "]
+ expected: FAIL
+
+ [object.width: IDL set to undefined]
+ expected: FAIL
+
+ [object.width: IDL set to 7]
+ expected: FAIL
+
+ [object.width: IDL set to 1.5]
+ expected: FAIL
+
+ [object.width: IDL set to "5%"]
+ expected: FAIL
+
+ [object.width: IDL set to "+100"]
+ expected: FAIL
+
+ [object.width: IDL set to ".5"]
+ expected: FAIL
+
+ [object.width: IDL set to true]
+ expected: FAIL
+
+ [object.width: IDL set to false]
+ expected: FAIL
+
+ [object.width: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.width: IDL set to NaN]
+ expected: FAIL
+
+ [object.width: IDL set to Infinity]
+ expected: FAIL
+
+ [object.width: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.width: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.width: IDL set to null]
+ expected: FAIL
+
+ [object.width: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.width: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.height: typeof IDL attribute]
+ expected: FAIL
+
+ [object.height: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.height: setAttribute() to ""]
+ expected: FAIL
+
+ [object.height: 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 "]
+ expected: FAIL
+
+ [object.height: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.height: setAttribute() to 7]
+ expected: FAIL
+
+ [object.height: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.height: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.height: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.height: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.height: setAttribute() to true]
+ expected: FAIL
+
+ [object.height: setAttribute() to false]
+ expected: FAIL
+
+ [object.height: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.height: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.height: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.height: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.height: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.height: setAttribute() to null]
+ expected: FAIL
+
+ [object.height: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.height: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.height: IDL set to ""]
+ expected: FAIL
+
+ [object.height: IDL set 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 "]
+ expected: FAIL
+
+ [object.height: IDL set to undefined]
+ expected: FAIL
+
+ [object.height: IDL set to 7]
+ expected: FAIL
+
+ [object.height: IDL set to 1.5]
+ expected: FAIL
+
+ [object.height: IDL set to "5%"]
+ expected: FAIL
+
+ [object.height: IDL set to "+100"]
+ expected: FAIL
+
+ [object.height: IDL set to ".5"]
+ expected: FAIL
+
+ [object.height: IDL set to true]
+ expected: FAIL
+
+ [object.height: IDL set to false]
+ expected: FAIL
+
+ [object.height: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.height: IDL set to NaN]
+ expected: FAIL
+
+ [object.height: IDL set to Infinity]
+ expected: FAIL
+
+ [object.height: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.height: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.height: IDL set to null]
+ expected: FAIL
+
+ [object.height: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.height: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.align: typeof IDL attribute]
+ expected: FAIL
+
+ [object.align: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.align: setAttribute() to ""]
+ expected: FAIL
+
+ [object.align: 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 "]
+ expected: FAIL
+
+ [object.align: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.align: setAttribute() to 7]
+ expected: FAIL
+
+ [object.align: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.align: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.align: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.align: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.align: setAttribute() to true]
+ expected: FAIL
+
+ [object.align: setAttribute() to false]
+ expected: FAIL
+
+ [object.align: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.align: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.align: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.align: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.align: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.align: setAttribute() to null]
+ expected: FAIL
+
+ [object.align: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.align: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.align: IDL set to ""]
+ expected: FAIL
+
+ [object.align: IDL set 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 "]
+ expected: FAIL
+
+ [object.align: IDL set to undefined]
+ expected: FAIL
+
+ [object.align: IDL set to 7]
+ expected: FAIL
+
+ [object.align: IDL set to 1.5]
+ expected: FAIL
+
+ [object.align: IDL set to "5%"]
+ expected: FAIL
+
+ [object.align: IDL set to "+100"]
+ expected: FAIL
+
+ [object.align: IDL set to ".5"]
+ expected: FAIL
+
+ [object.align: IDL set to true]
+ expected: FAIL
+
+ [object.align: IDL set to false]
+ expected: FAIL
+
+ [object.align: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.align: IDL set to NaN]
+ expected: FAIL
+
+ [object.align: IDL set to Infinity]
+ expected: FAIL
+
+ [object.align: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.align: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.align: IDL set to null]
+ expected: FAIL
+
+ [object.align: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.align: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.archive: typeof IDL attribute]
+ expected: FAIL
+
+ [object.archive: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.archive: setAttribute() to ""]
+ expected: FAIL
+
+ [object.archive: 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 "]
+ expected: FAIL
+
+ [object.archive: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.archive: setAttribute() to 7]
+ expected: FAIL
+
+ [object.archive: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.archive: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.archive: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.archive: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.archive: setAttribute() to true]
+ expected: FAIL
+
+ [object.archive: setAttribute() to false]
+ expected: FAIL
+
+ [object.archive: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.archive: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.archive: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.archive: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.archive: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.archive: setAttribute() to null]
+ expected: FAIL
+
+ [object.archive: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.archive: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.archive: IDL set to ""]
+ expected: FAIL
+
+ [object.archive: IDL set 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 "]
+ expected: FAIL
+
+ [object.archive: IDL set to undefined]
+ expected: FAIL
+
+ [object.archive: IDL set to 7]
+ expected: FAIL
+
+ [object.archive: IDL set to 1.5]
+ expected: FAIL
+
+ [object.archive: IDL set to "5%"]
+ expected: FAIL
+
+ [object.archive: IDL set to "+100"]
+ expected: FAIL
+
+ [object.archive: IDL set to ".5"]
+ expected: FAIL
+
+ [object.archive: IDL set to true]
+ expected: FAIL
+
+ [object.archive: IDL set to false]
+ expected: FAIL
+
+ [object.archive: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.archive: IDL set to NaN]
+ expected: FAIL
+
+ [object.archive: IDL set to Infinity]
+ expected: FAIL
+
+ [object.archive: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.archive: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.archive: IDL set to null]
+ expected: FAIL
+
+ [object.archive: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.archive: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.code: typeof IDL attribute]
+ expected: FAIL
+
+ [object.code: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.code: setAttribute() to ""]
+ expected: FAIL
+
+ [object.code: 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 "]
+ expected: FAIL
+
+ [object.code: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.code: setAttribute() to 7]
+ expected: FAIL
+
+ [object.code: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.code: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.code: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.code: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.code: setAttribute() to true]
+ expected: FAIL
+
+ [object.code: setAttribute() to false]
+ expected: FAIL
+
+ [object.code: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.code: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.code: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.code: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.code: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.code: setAttribute() to null]
+ expected: FAIL
+
+ [object.code: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.code: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.code: IDL set to ""]
+ expected: FAIL
+
+ [object.code: IDL set 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 "]
+ expected: FAIL
+
+ [object.code: IDL set to undefined]
+ expected: FAIL
+
+ [object.code: IDL set to 7]
+ expected: FAIL
+
+ [object.code: IDL set to 1.5]
+ expected: FAIL
+
+ [object.code: IDL set to "5%"]
+ expected: FAIL
+
+ [object.code: IDL set to "+100"]
+ expected: FAIL
+
+ [object.code: IDL set to ".5"]
+ expected: FAIL
+
+ [object.code: IDL set to true]
+ expected: FAIL
+
+ [object.code: IDL set to false]
+ expected: FAIL
+
+ [object.code: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.code: IDL set to NaN]
+ expected: FAIL
+
+ [object.code: IDL set to Infinity]
+ expected: FAIL
+
+ [object.code: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.code: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.code: IDL set to null]
+ expected: FAIL
+
+ [object.code: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.code: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.declare: typeof IDL attribute]
+ expected: FAIL
+
+ [object.declare: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.declare: setAttribute() to ""]
+ expected: FAIL
+
+ [object.declare: setAttribute() to " foo "]
+ expected: FAIL
+
+ [object.declare: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.declare: setAttribute() to null]
+ expected: FAIL
+
+ [object.declare: setAttribute() to 7]
+ expected: FAIL
+
+ [object.declare: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.declare: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.declare: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.declare: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.declare: setAttribute() to true]
+ expected: FAIL
+
+ [object.declare: setAttribute() to false]
+ expected: FAIL
+
+ [object.declare: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.declare: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.declare: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.declare: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.declare: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.declare: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.declare: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.declare: setAttribute() to "declare"]
+ expected: FAIL
+
+ [object.declare: IDL set to ""]
+ expected: FAIL
+
+ [object.declare: IDL set to " foo "]
+ expected: FAIL
+
+ [object.declare: IDL set to undefined]
+ expected: FAIL
+
+ [object.declare: IDL set to null]
+ expected: FAIL
+
+ [object.declare: IDL set to 7]
+ expected: FAIL
+
+ [object.declare: IDL set to 1.5]
+ expected: FAIL
+
+ [object.declare: IDL set to "5%"]
+ expected: FAIL
+
+ [object.declare: IDL set to "+100"]
+ expected: FAIL
+
+ [object.declare: IDL set to ".5"]
+ expected: FAIL
+
+ [object.declare: IDL set to false]
+ expected: FAIL
+
+ [object.declare: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.declare: IDL set to NaN]
+ expected: FAIL
+
+ [object.declare: IDL set to Infinity]
+ expected: FAIL
+
+ [object.declare: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.declare: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.declare: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.declare: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.hspace: typeof IDL attribute]
+ expected: FAIL
+
+ [object.hspace: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to -2147483649]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to -36]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to -1]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to 0]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to 1]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to 257]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to 2147483648]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to 4294967295]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to 4294967296]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to ""]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "-"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "+"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "-1"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "-0"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "0"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "1"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "\\v7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "
7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "
7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "᠎7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "\\t\\v7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "\\n\\v7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "\\f\\v7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "\\r\\v7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to " \\v7"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [object.hspace: 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 "]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to true]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to false]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to object "2"]
+ expected: FAIL
+
+ [object.hspace: setAttribute() to object "3"]
+ expected: FAIL
+
+ [object.hspace: IDL set to 0]
+ expected: FAIL
+
+ [object.hspace: IDL set to 1]
+ expected: FAIL
+
+ [object.hspace: IDL set to 257]
+ expected: FAIL
+
+ [object.hspace: IDL set to 2147483647]
+ expected: FAIL
+
+ [object.hspace: IDL set to "-0"]
+ expected: FAIL
+
+ [object.hspace: IDL set to 2147483648]
+ expected: FAIL
+
+ [object.hspace: IDL set to 4294967295]
+ expected: FAIL
+
+ [object.standby: typeof IDL attribute]
+ expected: FAIL
+
+ [object.standby: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.standby: setAttribute() to ""]
+ expected: FAIL
+
+ [object.standby: 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 "]
+ expected: FAIL
+
+ [object.standby: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.standby: setAttribute() to 7]
+ expected: FAIL
+
+ [object.standby: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.standby: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.standby: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.standby: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.standby: setAttribute() to true]
+ expected: FAIL
+
+ [object.standby: setAttribute() to false]
+ expected: FAIL
+
+ [object.standby: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.standby: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.standby: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.standby: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.standby: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.standby: setAttribute() to null]
+ expected: FAIL
+
+ [object.standby: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.standby: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.standby: IDL set to ""]
+ expected: FAIL
+
+ [object.standby: IDL set 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 "]
+ expected: FAIL
+
+ [object.standby: IDL set to undefined]
+ expected: FAIL
+
+ [object.standby: IDL set to 7]
+ expected: FAIL
+
+ [object.standby: IDL set to 1.5]
+ expected: FAIL
+
+ [object.standby: IDL set to "5%"]
+ expected: FAIL
+
+ [object.standby: IDL set to "+100"]
+ expected: FAIL
+
+ [object.standby: IDL set to ".5"]
+ expected: FAIL
+
+ [object.standby: IDL set to true]
+ expected: FAIL
+
+ [object.standby: IDL set to false]
+ expected: FAIL
+
+ [object.standby: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.standby: IDL set to NaN]
+ expected: FAIL
+
+ [object.standby: IDL set to Infinity]
+ expected: FAIL
+
+ [object.standby: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.standby: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.standby: IDL set to null]
+ expected: FAIL
+
+ [object.standby: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.standby: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.vspace: typeof IDL attribute]
+ expected: FAIL
+
+ [object.vspace: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to -2147483649]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to -36]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to -1]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to 0]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to 1]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to 257]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to 2147483648]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to 4294967295]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to 4294967296]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to ""]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "-"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "+"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "-1"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "-0"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "0"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "1"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "\\v7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "
7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "
7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "᠎7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " 7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "\\t\\v7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "\\n\\v7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "\\f\\v7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "\\r\\v7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to " \\v7"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [object.vspace: 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 "]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to true]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to false]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to object "2"]
+ expected: FAIL
+
+ [object.vspace: setAttribute() to object "3"]
+ expected: FAIL
+
+ [object.vspace: IDL set to 0]
+ expected: FAIL
+
+ [object.vspace: IDL set to 1]
+ expected: FAIL
+
+ [object.vspace: IDL set to 257]
+ expected: FAIL
+
+ [object.vspace: IDL set to 2147483647]
+ expected: FAIL
+
+ [object.vspace: IDL set to "-0"]
+ expected: FAIL
+
+ [object.vspace: IDL set to 2147483648]
+ expected: FAIL
+
+ [object.vspace: IDL set to 4294967295]
+ expected: FAIL
+
+ [object.codeBase: typeof IDL attribute]
+ expected: FAIL
+
+ [object.codeBase: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to ""]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to " foo "]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to "http://site.example/"]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [object.codeBase: 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 "]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to 7]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to true]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to false]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to null]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.codeBase: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.codeBase: IDL set to ""]
+ expected: FAIL
+
+ [object.codeBase: IDL set to " foo "]
+ expected: FAIL
+
+ [object.codeBase: IDL set to "http://site.example/"]
+ expected: FAIL
+
+ [object.codeBase: IDL set to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [object.codeBase: IDL set 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 "]
+ expected: FAIL
+
+ [object.codeBase: IDL set to undefined]
+ expected: FAIL
+
+ [object.codeBase: IDL set to 7]
+ expected: FAIL
+
+ [object.codeBase: IDL set to 1.5]
+ expected: FAIL
+
+ [object.codeBase: IDL set to "5%"]
+ expected: FAIL
+
+ [object.codeBase: IDL set to "+100"]
+ expected: FAIL
+
+ [object.codeBase: IDL set to ".5"]
+ expected: FAIL
+
+ [object.codeBase: IDL set to true]
+ expected: FAIL
+
+ [object.codeBase: IDL set to false]
+ expected: FAIL
+
+ [object.codeBase: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.codeBase: IDL set to NaN]
+ expected: FAIL
+
+ [object.codeBase: IDL set to Infinity]
+ expected: FAIL
+
+ [object.codeBase: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.codeBase: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.codeBase: IDL set to null]
+ expected: FAIL
+
+ [object.codeBase: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.codeBase: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.codeType: typeof IDL attribute]
+ expected: FAIL
+
+ [object.codeType: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to ""]
+ expected: FAIL
+
+ [object.codeType: 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 "]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to 7]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to true]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to false]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to null]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.codeType: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.codeType: IDL set to ""]
+ expected: FAIL
+
+ [object.codeType: IDL set 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 "]
+ expected: FAIL
+
+ [object.codeType: IDL set to undefined]
+ expected: FAIL
+
+ [object.codeType: IDL set to 7]
+ expected: FAIL
+
+ [object.codeType: IDL set to 1.5]
+ expected: FAIL
+
+ [object.codeType: IDL set to "5%"]
+ expected: FAIL
+
+ [object.codeType: IDL set to "+100"]
+ expected: FAIL
+
+ [object.codeType: IDL set to ".5"]
+ expected: FAIL
+
+ [object.codeType: IDL set to true]
+ expected: FAIL
+
+ [object.codeType: IDL set to false]
+ expected: FAIL
+
+ [object.codeType: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.codeType: IDL set to NaN]
+ expected: FAIL
+
+ [object.codeType: IDL set to Infinity]
+ expected: FAIL
+
+ [object.codeType: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.codeType: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.codeType: IDL set to null]
+ expected: FAIL
+
+ [object.codeType: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.codeType: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [object.border: typeof IDL attribute]
+ expected: FAIL
+
+ [object.border: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [object.border: setAttribute() to ""]
+ expected: FAIL
+
+ [object.border: 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 "]
+ expected: FAIL
+
+ [object.border: setAttribute() to undefined]
+ expected: FAIL
+
+ [object.border: setAttribute() to 7]
+ expected: FAIL
+
+ [object.border: setAttribute() to 1.5]
+ expected: FAIL
+
+ [object.border: setAttribute() to "5%"]
+ expected: FAIL
+
+ [object.border: setAttribute() to "+100"]
+ expected: FAIL
+
+ [object.border: setAttribute() to ".5"]
+ expected: FAIL
+
+ [object.border: setAttribute() to true]
+ expected: FAIL
+
+ [object.border: setAttribute() to false]
+ expected: FAIL
+
+ [object.border: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [object.border: setAttribute() to NaN]
+ expected: FAIL
+
+ [object.border: setAttribute() to Infinity]
+ expected: FAIL
+
+ [object.border: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [object.border: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [object.border: setAttribute() to null]
+ expected: FAIL
+
+ [object.border: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [object.border: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [object.border: IDL set to ""]
+ expected: FAIL
+
+ [object.border: IDL set 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 "]
+ expected: FAIL
+
+ [object.border: IDL set to undefined]
+ expected: FAIL
+
+ [object.border: IDL set to 7]
+ expected: FAIL
+
+ [object.border: IDL set to 1.5]
+ expected: FAIL
+
+ [object.border: IDL set to "5%"]
+ expected: FAIL
+
+ [object.border: IDL set to "+100"]
+ expected: FAIL
+
+ [object.border: IDL set to ".5"]
+ expected: FAIL
+
+ [object.border: IDL set to true]
+ expected: FAIL
+
+ [object.border: IDL set to false]
+ expected: FAIL
+
+ [object.border: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [object.border: IDL set to NaN]
+ expected: FAIL
+
+ [object.border: IDL set to Infinity]
+ expected: FAIL
+
+ [object.border: IDL set to -Infinity]
+ expected: FAIL
+
+ [object.border: IDL set to "\\0"]
+ expected: FAIL
+
+ [object.border: IDL set to null]
+ expected: FAIL
+
+ [object.border: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [object.border: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [param.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [param.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [param.accessKey: 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 "]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [param.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [param.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [param.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [param.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [param.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [param.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [param.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [param.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [param.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [param.accessKey: IDL set to true]
+ expected: FAIL
+
+ [param.accessKey: IDL set to false]
+ expected: FAIL
+
+ [param.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [param.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [param.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [param.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [param.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [param.accessKey: IDL set to null]
+ expected: FAIL
+
+ [param.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [param.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [param.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [param.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [param.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [param.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [param.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [param.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [param.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [param.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [param.name: typeof IDL attribute]
+ expected: FAIL
+
+ [param.name: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [param.name: setAttribute() to ""]
+ expected: FAIL
+
+ [param.name: 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 "]
+ expected: FAIL
+
+ [param.name: setAttribute() to undefined]
+ expected: FAIL
+
+ [param.name: setAttribute() to 7]
+ expected: FAIL
+
+ [param.name: setAttribute() to 1.5]
+ expected: FAIL
+
+ [param.name: setAttribute() to "5%"]
+ expected: FAIL
+
+ [param.name: setAttribute() to "+100"]
+ expected: FAIL
+
+ [param.name: setAttribute() to ".5"]
+ expected: FAIL
+
+ [param.name: setAttribute() to true]
+ expected: FAIL
+
+ [param.name: setAttribute() to false]
+ expected: FAIL
+
+ [param.name: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [param.name: setAttribute() to NaN]
+ expected: FAIL
+
+ [param.name: setAttribute() to Infinity]
+ expected: FAIL
+
+ [param.name: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [param.name: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [param.name: setAttribute() to null]
+ expected: FAIL
+
+ [param.name: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [param.name: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [param.name: IDL set to ""]
+ expected: FAIL
+
+ [param.name: IDL set 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 "]
+ expected: FAIL
+
+ [param.name: IDL set to undefined]
+ expected: FAIL
+
+ [param.name: IDL set to 7]
+ expected: FAIL
+
+ [param.name: IDL set to 1.5]
+ expected: FAIL
+
+ [param.name: IDL set to "5%"]
+ expected: FAIL
+
+ [param.name: IDL set to "+100"]
+ expected: FAIL
+
+ [param.name: IDL set to ".5"]
+ expected: FAIL
+
+ [param.name: IDL set to true]
+ expected: FAIL
+
+ [param.name: IDL set to false]
+ expected: FAIL
+
+ [param.name: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [param.name: IDL set to NaN]
+ expected: FAIL
+
+ [param.name: IDL set to Infinity]
+ expected: FAIL
+
+ [param.name: IDL set to -Infinity]
+ expected: FAIL
+
+ [param.name: IDL set to "\\0"]
+ expected: FAIL
+
+ [param.name: IDL set to null]
+ expected: FAIL
+
+ [param.name: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [param.name: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [param.value: typeof IDL attribute]
+ expected: FAIL
+
+ [param.value: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [param.value: setAttribute() to ""]
+ expected: FAIL
+
+ [param.value: 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 "]
+ expected: FAIL
+
+ [param.value: setAttribute() to undefined]
+ expected: FAIL
+
+ [param.value: setAttribute() to 7]
+ expected: FAIL
+
+ [param.value: setAttribute() to 1.5]
+ expected: FAIL
+
+ [param.value: setAttribute() to "5%"]
+ expected: FAIL
+
+ [param.value: setAttribute() to "+100"]
+ expected: FAIL
+
+ [param.value: setAttribute() to ".5"]
+ expected: FAIL
+
+ [param.value: setAttribute() to true]
+ expected: FAIL
+
+ [param.value: setAttribute() to false]
+ expected: FAIL
+
+ [param.value: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [param.value: setAttribute() to NaN]
+ expected: FAIL
+
+ [param.value: setAttribute() to Infinity]
+ expected: FAIL
+
+ [param.value: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [param.value: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [param.value: setAttribute() to null]
+ expected: FAIL
+
+ [param.value: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [param.value: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [param.value: IDL set to ""]
+ expected: FAIL
+
+ [param.value: IDL set 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 "]
+ expected: FAIL
+
+ [param.value: IDL set to undefined]
+ expected: FAIL
+
+ [param.value: IDL set to 7]
+ expected: FAIL
+
+ [param.value: IDL set to 1.5]
+ expected: FAIL
+
+ [param.value: IDL set to "5%"]
+ expected: FAIL
+
+ [param.value: IDL set to "+100"]
+ expected: FAIL
+
+ [param.value: IDL set to ".5"]
+ expected: FAIL
+
+ [param.value: IDL set to true]
+ expected: FAIL
+
+ [param.value: IDL set to false]
+ expected: FAIL
+
+ [param.value: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [param.value: IDL set to NaN]
+ expected: FAIL
+
+ [param.value: IDL set to Infinity]
+ expected: FAIL
+
+ [param.value: IDL set to -Infinity]
+ expected: FAIL
+
+ [param.value: IDL set to "\\0"]
+ expected: FAIL
+
+ [param.value: IDL set to null]
+ expected: FAIL
+
+ [param.value: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [param.value: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [param.type: typeof IDL attribute]
+ expected: FAIL
+
+ [param.type: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [param.type: setAttribute() to ""]
+ expected: FAIL
+
+ [param.type: 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 "]
+ expected: FAIL
+
+ [param.type: setAttribute() to undefined]
+ expected: FAIL
+
+ [param.type: setAttribute() to 7]
+ expected: FAIL
+
+ [param.type: setAttribute() to 1.5]
+ expected: FAIL
+
+ [param.type: setAttribute() to "5%"]
+ expected: FAIL
+
+ [param.type: setAttribute() to "+100"]
+ expected: FAIL
+
+ [param.type: setAttribute() to ".5"]
+ expected: FAIL
+
+ [param.type: setAttribute() to true]
+ expected: FAIL
+
+ [param.type: setAttribute() to false]
+ expected: FAIL
+
+ [param.type: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [param.type: setAttribute() to NaN]
+ expected: FAIL
+
+ [param.type: setAttribute() to Infinity]
+ expected: FAIL
+
+ [param.type: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [param.type: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [param.type: setAttribute() to null]
+ expected: FAIL
+
+ [param.type: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [param.type: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [param.type: IDL set to ""]
+ expected: FAIL
+
+ [param.type: IDL set 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 "]
+ expected: FAIL
+
+ [param.type: IDL set to undefined]
+ expected: FAIL
+
+ [param.type: IDL set to 7]
+ expected: FAIL
+
+ [param.type: IDL set to 1.5]
+ expected: FAIL
+
+ [param.type: IDL set to "5%"]
+ expected: FAIL
+
+ [param.type: IDL set to "+100"]
+ expected: FAIL
+
+ [param.type: IDL set to ".5"]
+ expected: FAIL
+
+ [param.type: IDL set to true]
+ expected: FAIL
+
+ [param.type: IDL set to false]
+ expected: FAIL
+
+ [param.type: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [param.type: IDL set to NaN]
+ expected: FAIL
+
+ [param.type: IDL set to Infinity]
+ expected: FAIL
+
+ [param.type: IDL set to -Infinity]
+ expected: FAIL
+
+ [param.type: IDL set to "\\0"]
+ expected: FAIL
+
+ [param.type: IDL set to null]
+ expected: FAIL
+
+ [param.type: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [param.type: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [param.valueType: typeof IDL attribute]
+ expected: FAIL
+
+ [param.valueType: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to ""]
+ expected: FAIL
+
+ [param.valueType: 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 "]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to undefined]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to 7]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to 1.5]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to "5%"]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to "+100"]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to ".5"]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to true]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to false]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to NaN]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to Infinity]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to null]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [param.valueType: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [param.valueType: IDL set to ""]
+ expected: FAIL
+
+ [param.valueType: IDL set 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 "]
+ expected: FAIL
+
+ [param.valueType: IDL set to undefined]
+ expected: FAIL
+
+ [param.valueType: IDL set to 7]
+ expected: FAIL
+
+ [param.valueType: IDL set to 1.5]
+ expected: FAIL
+
+ [param.valueType: IDL set to "5%"]
+ expected: FAIL
+
+ [param.valueType: IDL set to "+100"]
+ expected: FAIL
+
+ [param.valueType: IDL set to ".5"]
+ expected: FAIL
+
+ [param.valueType: IDL set to true]
+ expected: FAIL
+
+ [param.valueType: IDL set to false]
+ expected: FAIL
+
+ [param.valueType: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [param.valueType: IDL set to NaN]
+ expected: FAIL
+
+ [param.valueType: IDL set to Infinity]
+ expected: FAIL
+
+ [param.valueType: IDL set to -Infinity]
+ expected: FAIL
+
+ [param.valueType: IDL set to "\\0"]
+ expected: FAIL
+
+ [param.valueType: IDL set to null]
+ expected: FAIL
+
+ [param.valueType: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [param.valueType: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [video.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [video.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [video.accessKey: 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 "]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [video.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [video.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [video.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [video.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [video.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [video.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [video.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [video.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [video.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [video.accessKey: IDL set to true]
+ expected: FAIL
+
+ [video.accessKey: IDL set to false]
+ expected: FAIL
+
+ [video.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [video.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [video.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [video.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [video.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [video.accessKey: IDL set to null]
+ expected: FAIL
+
+ [video.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [video.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [video.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [video.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [video.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [video.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [video.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [video.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [video.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [video.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [video.width: typeof IDL attribute]
+ expected: FAIL
+
+ [video.width: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [video.width: setAttribute() to -2147483649]
+ expected: FAIL
+
+ [video.width: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [video.width: setAttribute() to -36]
+ expected: FAIL
+
+ [video.width: setAttribute() to -1]
+ expected: FAIL
+
+ [video.width: setAttribute() to 0]
+ expected: FAIL
+
+ [video.width: setAttribute() to 1]
+ expected: FAIL
+
+ [video.width: setAttribute() to 257]
+ expected: FAIL
+
+ [video.width: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [video.width: setAttribute() to 2147483648]
+ expected: FAIL
+
+ [video.width: setAttribute() to 4294967295]
+ expected: FAIL
+
+ [video.width: setAttribute() to 4294967296]
+ expected: FAIL
+
+ [video.width: setAttribute() to ""]
+ expected: FAIL
+
+ [video.width: setAttribute() to "-"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "+"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "-1"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "-0"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "0"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "1"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "\\v7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "
7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "
7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "᠎7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "\\t\\v7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "\\n\\v7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "\\f\\v7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "\\r\\v7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to " \\v7"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [video.width: 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 "]
+ expected: FAIL
+
+ [video.width: setAttribute() to undefined]
+ expected: FAIL
+
+ [video.width: setAttribute() to 1.5]
+ expected: FAIL
+
+ [video.width: setAttribute() to "5%"]
+ expected: FAIL
+
+ [video.width: setAttribute() to "+100"]
+ expected: FAIL
+
+ [video.width: setAttribute() to ".5"]
+ expected: FAIL
+
+ [video.width: setAttribute() to true]
+ expected: FAIL
+
+ [video.width: setAttribute() to false]
+ expected: FAIL
+
+ [video.width: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [video.width: setAttribute() to NaN]
+ expected: FAIL
+
+ [video.width: setAttribute() to Infinity]
+ expected: FAIL
+
+ [video.width: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [video.width: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [video.width: setAttribute() to object "2"]
+ expected: FAIL
+
+ [video.width: setAttribute() to object "3"]
+ expected: FAIL
+
+ [video.width: IDL set to 0]
+ expected: FAIL
+
+ [video.width: IDL set to 1]
+ expected: FAIL
+
+ [video.width: IDL set to 257]
+ expected: FAIL
+
+ [video.width: IDL set to 2147483647]
+ expected: FAIL
+
+ [video.width: IDL set to "-0"]
+ expected: FAIL
+
+ [video.width: IDL set to 2147483648]
+ expected: FAIL
+
+ [video.width: IDL set to 4294967295]
+ expected: FAIL
+
+ [video.height: typeof IDL attribute]
+ expected: FAIL
+
+ [video.height: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [video.height: setAttribute() to -2147483649]
+ expected: FAIL
+
+ [video.height: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [video.height: setAttribute() to -36]
+ expected: FAIL
+
+ [video.height: setAttribute() to -1]
+ expected: FAIL
+
+ [video.height: setAttribute() to 0]
+ expected: FAIL
+
+ [video.height: setAttribute() to 1]
+ expected: FAIL
+
+ [video.height: setAttribute() to 257]
+ expected: FAIL
+
+ [video.height: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [video.height: setAttribute() to 2147483648]
+ expected: FAIL
+
+ [video.height: setAttribute() to 4294967295]
+ expected: FAIL
+
+ [video.height: setAttribute() to 4294967296]
+ expected: FAIL
+
+ [video.height: setAttribute() to ""]
+ expected: FAIL
+
+ [video.height: setAttribute() to "-"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "+"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "-1"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "-0"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "0"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "1"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "\\v7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "
7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "
7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "᠎7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " 7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "\\t\\v7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "\\n\\v7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "\\f\\v7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "\\r\\v7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to " \\v7"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [video.height: 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 "]
+ expected: FAIL
+
+ [video.height: setAttribute() to undefined]
+ expected: FAIL
+
+ [video.height: setAttribute() to 1.5]
+ expected: FAIL
+
+ [video.height: setAttribute() to "5%"]
+ expected: FAIL
+
+ [video.height: setAttribute() to "+100"]
+ expected: FAIL
+
+ [video.height: setAttribute() to ".5"]
+ expected: FAIL
+
+ [video.height: setAttribute() to true]
+ expected: FAIL
+
+ [video.height: setAttribute() to false]
+ expected: FAIL
+
+ [video.height: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [video.height: setAttribute() to NaN]
+ expected: FAIL
+
+ [video.height: setAttribute() to Infinity]
+ expected: FAIL
+
+ [video.height: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [video.height: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [video.height: setAttribute() to object "2"]
+ expected: FAIL
+
+ [video.height: setAttribute() to object "3"]
+ expected: FAIL
+
+ [video.height: IDL set to 0]
+ expected: FAIL
+
+ [video.height: IDL set to 1]
+ expected: FAIL
+
+ [video.height: IDL set to 257]
+ expected: FAIL
+
+ [video.height: IDL set to 2147483647]
+ expected: FAIL
+
+ [video.height: IDL set to "-0"]
+ expected: FAIL
+
+ [video.height: IDL set to 2147483648]
+ expected: FAIL
+
+ [video.height: IDL set to 4294967295]
+ expected: FAIL
+
+ [video.poster: setAttribute() to ""]
+ expected: FAIL
+
+ [video.poster: setAttribute() to " foo "]
+ expected: FAIL
+
+ [video.poster: setAttribute() to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [video.poster: 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 "]
+ expected: FAIL
+
+ [video.poster: setAttribute() to undefined]
+ expected: FAIL
+
+ [video.poster: setAttribute() to 7]
+ expected: FAIL
+
+ [video.poster: setAttribute() to 1.5]
+ expected: FAIL
+
+ [video.poster: setAttribute() to "5%"]
+ expected: FAIL
+
+ [video.poster: setAttribute() to "+100"]
+ expected: FAIL
+
+ [video.poster: setAttribute() to ".5"]
+ expected: FAIL
+
+ [video.poster: setAttribute() to true]
+ expected: FAIL
+
+ [video.poster: setAttribute() to false]
+ expected: FAIL
+
+ [video.poster: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [video.poster: setAttribute() to NaN]
+ expected: FAIL
+
+ [video.poster: setAttribute() to Infinity]
+ expected: FAIL
+
+ [video.poster: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [video.poster: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [video.poster: setAttribute() to null]
+ expected: FAIL
+
+ [video.poster: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [video.poster: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [video.poster: IDL set to ""]
+ expected: FAIL
+
+ [video.poster: IDL set to " foo "]
+ expected: FAIL
+
+ [video.poster: IDL set to "//site.example/path???@#l"]
+ expected: FAIL
+
+ [video.poster: IDL set 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 "]
+ expected: FAIL
+
+ [video.poster: IDL set to undefined]
+ expected: FAIL
+
+ [video.poster: IDL set to 7]
+ expected: FAIL
+
+ [video.poster: IDL set to 1.5]
+ expected: FAIL
+
+ [video.poster: IDL set to "5%"]
+ expected: FAIL
+
+ [video.poster: IDL set to "+100"]
+ expected: FAIL
+
+ [video.poster: IDL set to ".5"]
+ expected: FAIL
+
+ [video.poster: IDL set to true]
+ expected: FAIL
+
+ [video.poster: IDL set to false]
+ expected: FAIL
+
+ [video.poster: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [video.poster: IDL set to NaN]
+ expected: FAIL
+
+ [video.poster: IDL set to Infinity]
+ expected: FAIL
+
+ [video.poster: IDL set to -Infinity]
+ expected: FAIL
+
+ [video.poster: IDL set to "\\0"]
+ expected: FAIL
+
+ [video.poster: IDL set to null]
+ expected: FAIL
+
+ [video.poster: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [video.poster: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [video.playsInline: typeof IDL attribute]
+ expected: FAIL
+
+ [video.playsInline: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to ""]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to " foo "]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to undefined]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to null]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to 7]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to 1.5]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to "5%"]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to "+100"]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to ".5"]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to true]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to false]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to NaN]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to Infinity]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [video.playsInline: setAttribute() to "playsInline"]
+ expected: FAIL
+
+ [video.playsInline: IDL set to ""]
+ expected: FAIL
+
+ [video.playsInline: IDL set to " foo "]
+ expected: FAIL
+
+ [video.playsInline: IDL set to undefined]
+ expected: FAIL
+
+ [video.playsInline: IDL set to null]
+ expected: FAIL
+
+ [video.playsInline: IDL set to 7]
+ expected: FAIL
+
+ [video.playsInline: IDL set to 1.5]
+ expected: FAIL
+
+ [video.playsInline: IDL set to "5%"]
+ expected: FAIL
+
+ [video.playsInline: IDL set to "+100"]
+ expected: FAIL
+
+ [video.playsInline: IDL set to ".5"]
+ expected: FAIL
+
+ [video.playsInline: IDL set to false]
+ expected: FAIL
+
+ [video.playsInline: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [video.playsInline: IDL set to NaN]
+ expected: FAIL
+
+ [video.playsInline: IDL set to Infinity]
+ expected: FAIL
+
+ [video.playsInline: IDL set to -Infinity]
+ expected: FAIL
+
+ [video.playsInline: IDL set to "\\0"]
+ expected: FAIL
+
+ [video.playsInline: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [video.playsInline: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [audio.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [audio.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [audio.accessKey: 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 "]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [audio.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [audio.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to true]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to false]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to null]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [audio.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [audio.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [audio.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [audio.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [audio.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [audio.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [audio.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [audio.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [audio.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [source.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [source.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [source.accessKey: 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 "]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [source.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [source.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [source.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [source.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [source.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [source.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [source.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [source.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [source.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [source.accessKey: IDL set to true]
+ expected: FAIL
+
+ [source.accessKey: IDL set to false]
+ expected: FAIL
+
+ [source.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [source.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [source.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [source.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [source.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [source.accessKey: IDL set to null]
+ expected: FAIL
+
+ [source.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [source.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [source.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [source.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [source.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [source.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [source.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [source.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [source.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [source.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to ""]
+ expected: FAIL
+
+ [source.srcset: 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 "]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to undefined]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to 7]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to 1.5]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to "5%"]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to "+100"]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to ".5"]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to true]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to false]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to NaN]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to Infinity]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to null]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [source.srcset: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [source.srcset: IDL set to ""]
+ expected: FAIL
+
+ [source.srcset: IDL set 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 "]
+ expected: FAIL
+
+ [source.srcset: IDL set to undefined]
+ expected: FAIL
+
+ [source.srcset: IDL set to 7]
+ expected: FAIL
+
+ [source.srcset: IDL set to 1.5]
+ expected: FAIL
+
+ [source.srcset: IDL set to "5%"]
+ expected: FAIL
+
+ [source.srcset: IDL set to "+100"]
+ expected: FAIL
+
+ [source.srcset: IDL set to ".5"]
+ expected: FAIL
+
+ [source.srcset: IDL set to true]
+ expected: FAIL
+
+ [source.srcset: IDL set to false]
+ expected: FAIL
+
+ [source.srcset: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [source.srcset: IDL set to NaN]
+ expected: FAIL
+
+ [source.srcset: IDL set to Infinity]
+ expected: FAIL
+
+ [source.srcset: IDL set to -Infinity]
+ expected: FAIL
+
+ [source.srcset: IDL set to "\\0"]
+ expected: FAIL
+
+ [source.srcset: IDL set to null]
+ expected: FAIL
+
+ [source.srcset: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [source.srcset: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [track.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [track.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [track.accessKey: 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 "]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [track.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [track.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [track.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [track.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [track.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [track.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [track.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [track.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [track.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [track.accessKey: IDL set to true]
+ expected: FAIL
+
+ [track.accessKey: IDL set to false]
+ expected: FAIL
+
+ [track.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [track.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [track.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [track.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [track.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [track.accessKey: IDL set to null]
+ expected: FAIL
+
+ [track.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [track.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [track.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [track.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [track.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [track.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [track.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [track.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [track.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [track.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [track.kind: setAttribute() to ""]
+ expected: FAIL
+
+ [track.kind: IDL set to ""]
+ expected: FAIL
+
+ [canvas.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [canvas.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [canvas.accessKey: 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 "]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [canvas.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to true]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to false]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to null]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [canvas.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [canvas.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [canvas.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [canvas.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [canvas.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [canvas.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [canvas.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [canvas.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [canvas.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [map.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [map.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [map.accessKey: 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 "]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [map.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [map.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [map.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [map.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [map.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [map.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [map.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [map.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [map.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [map.accessKey: IDL set to true]
+ expected: FAIL
+
+ [map.accessKey: IDL set to false]
+ expected: FAIL
+
+ [map.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [map.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [map.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [map.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [map.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [map.accessKey: IDL set to null]
+ expected: FAIL
+
+ [map.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [map.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [map.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [map.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [map.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [map.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [map.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [map.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [map.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [map.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [map.name: typeof IDL attribute]
+ expected: FAIL
+
+ [map.name: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [map.name: setAttribute() to ""]
+ expected: FAIL
+
+ [map.name: 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 "]
+ expected: FAIL
+
+ [map.name: setAttribute() to undefined]
+ expected: FAIL
+
+ [map.name: setAttribute() to 7]
+ expected: FAIL
+
+ [map.name: setAttribute() to 1.5]
+ expected: FAIL
+
+ [map.name: setAttribute() to "5%"]
+ expected: FAIL
+
+ [map.name: setAttribute() to "+100"]
+ expected: FAIL
+
+ [map.name: setAttribute() to ".5"]
+ expected: FAIL
+
+ [map.name: setAttribute() to true]
+ expected: FAIL
+
+ [map.name: setAttribute() to false]
+ expected: FAIL
+
+ [map.name: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [map.name: setAttribute() to NaN]
+ expected: FAIL
+
+ [map.name: setAttribute() to Infinity]
+ expected: FAIL
+
+ [map.name: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [map.name: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [map.name: setAttribute() to null]
+ expected: FAIL
+
+ [map.name: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [map.name: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [map.name: IDL set to ""]
+ expected: FAIL
+
+ [map.name: IDL set 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 "]
+ expected: FAIL
+
+ [map.name: IDL set to undefined]
+ expected: FAIL
+
+ [map.name: IDL set to 7]
+ expected: FAIL
+
+ [map.name: IDL set to 1.5]
+ expected: FAIL
+
+ [map.name: IDL set to "5%"]
+ expected: FAIL
+
+ [map.name: IDL set to "+100"]
+ expected: FAIL
+
+ [map.name: IDL set to ".5"]
+ expected: FAIL
+
+ [map.name: IDL set to true]
+ expected: FAIL
+
+ [map.name: IDL set to false]
+ expected: FAIL
+
+ [map.name: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [map.name: IDL set to NaN]
+ expected: FAIL
+
+ [map.name: IDL set to Infinity]
+ expected: FAIL
+
+ [map.name: IDL set to -Infinity]
+ expected: FAIL
+
+ [map.name: IDL set to "\\0"]
+ expected: FAIL
+
+ [map.name: IDL set to null]
+ expected: FAIL
+
+ [map.name: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [map.name: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [area.accessKey: typeof IDL attribute]
+ expected: FAIL
+
+ [area.accessKey: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to ""]
+ expected: FAIL
+
+ [area.accessKey: 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 "]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to undefined]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to 7]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to 1.5]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to "5%"]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to "+100"]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to ".5"]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to true]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to false]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to NaN]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to Infinity]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to null]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [area.accessKey: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [area.accessKey: IDL set to ""]
+ expected: FAIL
+
+ [area.accessKey: IDL set 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 "]
+ expected: FAIL
+
+ [area.accessKey: IDL set to undefined]
+ expected: FAIL
+
+ [area.accessKey: IDL set to 7]
+ expected: FAIL
+
+ [area.accessKey: IDL set to 1.5]
+ expected: FAIL
+
+ [area.accessKey: IDL set to "5%"]
+ expected: FAIL
+
+ [area.accessKey: IDL set to "+100"]
+ expected: FAIL
+
+ [area.accessKey: IDL set to ".5"]
+ expected: FAIL
+
+ [area.accessKey: IDL set to true]
+ expected: FAIL
+
+ [area.accessKey: IDL set to false]
+ expected: FAIL
+
+ [area.accessKey: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [area.accessKey: IDL set to NaN]
+ expected: FAIL
+
+ [area.accessKey: IDL set to Infinity]
+ expected: FAIL
+
+ [area.accessKey: IDL set to -Infinity]
+ expected: FAIL
+
+ [area.accessKey: IDL set to "\\0"]
+ expected: FAIL
+
+ [area.accessKey: IDL set to null]
+ expected: FAIL
+
+ [area.accessKey: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [area.accessKey: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [area.tabIndex: typeof IDL attribute]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to -36]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to -1]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to 0]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to 1]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to 2147483647]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to -2147483648]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to "-1"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to "-0"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to "0"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to "1"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to "\\t7"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to "\\f7"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to " 7"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to "\\n7"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to "\\r7"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to "7\\v"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to 1.5]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to "5%"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to "+100"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to object "2"]
+ expected: FAIL
+
+ [area.tabIndex: setAttribute() to object "3"]
+ expected: FAIL
+
+ [area.tabIndex: IDL set to -36]
+ expected: FAIL
+
+ [area.tabIndex: IDL set to -1]
+ expected: FAIL
+
+ [area.tabIndex: IDL set to 0]
+ expected: FAIL
+
+ [area.tabIndex: IDL set to 1]
+ expected: FAIL
+
+ [area.tabIndex: IDL set to 2147483647]
+ expected: FAIL
+
+ [area.tabIndex: IDL set to -2147483648]
+ expected: FAIL
+
+ [area.alt: typeof IDL attribute]
+ expected: FAIL
+
+ [area.alt: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [area.alt: setAttribute() to ""]
+ expected: FAIL
+
+ [area.alt: 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 "]
+ expected: FAIL
+
+ [area.alt: setAttribute() to undefined]
+ expected: FAIL
+
+ [area.alt: setAttribute() to 7]
+ expected: FAIL
+
+ [area.alt: setAttribute() to 1.5]
+ expected: FAIL
+
+ [area.alt: setAttribute() to "5%"]
+ expected: FAIL
+
+ [area.alt: setAttribute() to "+100"]
+ expected: FAIL
+
+ [area.alt: setAttribute() to ".5"]
+ expected: FAIL
+
+ [area.alt: setAttribute() to true]
+ expected: FAIL
+
+ [area.alt: setAttribute() to false]
+ expected: FAIL
+
+ [area.alt: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [area.alt: setAttribute() to NaN]
+ expected: FAIL
+
+ [area.alt: setAttribute() to Infinity]
+ expected: FAIL
+
+ [area.alt: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [area.alt: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [area.alt: setAttribute() to null]
+ expected: FAIL
+
+ [area.alt: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [area.alt: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [area.alt: IDL set to ""]
+ expected: FAIL
+
+ [area.alt: IDL set 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 "]
+ expected: FAIL
+
+ [area.alt: IDL set to undefined]
+ expected: FAIL
+
+ [area.alt: IDL set to 7]
+ expected: FAIL
+
+ [area.alt: IDL set to 1.5]
+ expected: FAIL
+
+ [area.alt: IDL set to "5%"]
+ expected: FAIL
+
+ [area.alt: IDL set to "+100"]
+ expected: FAIL
+
+ [area.alt: IDL set to ".5"]
+ expected: FAIL
+
+ [area.alt: IDL set to true]
+ expected: FAIL
+
+ [area.alt: IDL set to false]
+ expected: FAIL
+
+ [area.alt: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [area.alt: IDL set to NaN]
+ expected: FAIL
+
+ [area.alt: IDL set to Infinity]
+ expected: FAIL
+
+ [area.alt: IDL set to -Infinity]
+ expected: FAIL
+
+ [area.alt: IDL set to "\\0"]
+ expected: FAIL
+
+ [area.alt: IDL set to null]
+ expected: FAIL
+
+ [area.alt: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [area.alt: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [area.coords: typeof IDL attribute]
+ expected: FAIL
+
+ [area.coords: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [area.coords: setAttribute() to ""]
+ expected: FAIL
+
+ [area.coords: 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 "]
+ expected: FAIL
+
+ [area.coords: setAttribute() to undefined]
+ expected: FAIL
+
+ [area.coords: setAttribute() to 7]
+ expected: FAIL
+
+ [area.coords: setAttribute() to 1.5]
+ expected: FAIL
+
+ [area.coords: setAttribute() to "5%"]
+ expected: FAIL
+
+ [area.coords: setAttribute() to "+100"]
+ expected: FAIL
+
+ [area.coords: setAttribute() to ".5"]
+ expected: FAIL
+
+ [area.coords: setAttribute() to true]
+ expected: FAIL
+
+ [area.coords: setAttribute() to false]
+ expected: FAIL
+
+ [area.coords: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [area.coords: setAttribute() to NaN]
+ expected: FAIL
+
+ [area.coords: setAttribute() to Infinity]
+ expected: FAIL
+
+ [area.coords: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [area.coords: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [area.coords: setAttribute() to null]
+ expected: FAIL
+
+ [area.coords: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [area.coords: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [area.coords: IDL set to ""]
+ expected: FAIL
+
+ [area.coords: IDL set 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 "]
+ expected: FAIL
+
+ [area.coords: IDL set to undefined]
+ expected: FAIL
+
+ [area.coords: IDL set to 7]
+ expected: FAIL
+
+ [area.coords: IDL set to 1.5]
+ expected: FAIL
+
+ [area.coords: IDL set to "5%"]
+ expected: FAIL
+
+ [area.coords: IDL set to "+100"]
+ expected: FAIL
+
+ [area.coords: IDL set to ".5"]
+ expected: FAIL
+
+ [area.coords: IDL set to true]
+ expected: FAIL
+
+ [area.coords: IDL set to false]
+ expected: FAIL
+
+ [area.coords: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [area.coords: IDL set to NaN]
+ expected: FAIL
+
+ [area.coords: IDL set to Infinity]
+ expected: FAIL
+
+ [area.coords: IDL set to -Infinity]
+ expected: FAIL
+
+ [area.coords: IDL set to "\\0"]
+ expected: FAIL
+
+ [area.coords: IDL set to null]
+ expected: FAIL
+
+ [area.coords: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [area.coords: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [area.shape: typeof IDL attribute]
+ expected: FAIL
+
+ [area.shape: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [area.shape: setAttribute() to ""]
+ expected: FAIL
+
+ [area.shape: 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 "]
+ expected: FAIL
+
+ [area.shape: setAttribute() to undefined]
+ expected: FAIL
+
+ [area.shape: setAttribute() to 7]
+ expected: FAIL
+
+ [area.shape: setAttribute() to 1.5]
+ expected: FAIL
+
+ [area.shape: setAttribute() to "5%"]
+ expected: FAIL
+
+ [area.shape: setAttribute() to "+100"]
+ expected: FAIL
+
+ [area.shape: setAttribute() to ".5"]
+ expected: FAIL
+
+ [area.shape: setAttribute() to true]
+ expected: FAIL
+
+ [area.shape: setAttribute() to false]
+ expected: FAIL
+
+ [area.shape: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [area.shape: setAttribute() to NaN]
+ expected: FAIL
+
+ [area.shape: setAttribute() to Infinity]
+ expected: FAIL
+
+ [area.shape: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [area.shape: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [area.shape: setAttribute() to null]
+ expected: FAIL
+
+ [area.shape: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [area.shape: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [area.shape: IDL set to ""]
+ expected: FAIL
+
+ [area.shape: IDL set 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 "]
+ expected: FAIL
+
+ [area.shape: IDL set to undefined]
+ expected: FAIL
+
+ [area.shape: IDL set to 7]
+ expected: FAIL
+
+ [area.shape: IDL set to 1.5]
+ expected: FAIL
+
+ [area.shape: IDL set to "5%"]
+ expected: FAIL
+
+ [area.shape: IDL set to "+100"]
+ expected: FAIL
+
+ [area.shape: IDL set to ".5"]
+ expected: FAIL
+
+ [area.shape: IDL set to true]
+ expected: FAIL
+
+ [area.shape: IDL set to false]
+ expected: FAIL
+
+ [area.shape: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [area.shape: IDL set to NaN]
+ expected: FAIL
+
+ [area.shape: IDL set to Infinity]
+ expected: FAIL
+
+ [area.shape: IDL set to -Infinity]
+ expected: FAIL
+
+ [area.shape: IDL set to "\\0"]
+ expected: FAIL
+
+ [area.shape: IDL set to null]
+ expected: FAIL
+
+ [area.shape: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [area.shape: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [area.download: typeof IDL attribute]
+ expected: FAIL
+
+ [area.download: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [area.download: setAttribute() to ""]
+ expected: FAIL
+
+ [area.download: 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 "]
+ expected: FAIL
+
+ [area.download: setAttribute() to undefined]
+ expected: FAIL
+
+ [area.download: setAttribute() to 7]
+ expected: FAIL
+
+ [area.download: setAttribute() to 1.5]
+ expected: FAIL
+
+ [area.download: setAttribute() to "5%"]
+ expected: FAIL
+
+ [area.download: setAttribute() to "+100"]
+ expected: FAIL
+
+ [area.download: setAttribute() to ".5"]
+ expected: FAIL
+
+ [area.download: setAttribute() to true]
+ expected: FAIL
+
+ [area.download: setAttribute() to false]
+ expected: FAIL
+
+ [area.download: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [area.download: setAttribute() to NaN]
+ expected: FAIL
+
+ [area.download: setAttribute() to Infinity]
+ expected: FAIL
+
+ [area.download: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [area.download: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [area.download: setAttribute() to null]
+ expected: FAIL
+
+ [area.download: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [area.download: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [area.download: IDL set to ""]
+ expected: FAIL
+
+ [area.download: IDL set 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 "]
+ expected: FAIL
+
+ [area.download: IDL set to undefined]
+ expected: FAIL
+
+ [area.download: IDL set to 7]
+ expected: FAIL
+
+ [area.download: IDL set to 1.5]
+ expected: FAIL
+
+ [area.download: IDL set to "5%"]
+ expected: FAIL
+
+ [area.download: IDL set to "+100"]
+ expected: FAIL
+
+ [area.download: IDL set to ".5"]
+ expected: FAIL
+
+ [area.download: IDL set to true]
+ expected: FAIL
+
+ [area.download: IDL set to false]
+ expected: FAIL
+
+ [area.download: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [area.download: IDL set to NaN]
+ expected: FAIL
+
+ [area.download: IDL set to Infinity]
+ expected: FAIL
+
+ [area.download: IDL set to -Infinity]
+ expected: FAIL
+
+ [area.download: IDL set to "\\0"]
+ expected: FAIL
+
+ [area.download: IDL set to null]
+ expected: FAIL
+
+ [area.download: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [area.download: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [area.ping: typeof IDL attribute]
+ expected: FAIL
+
+ [area.ping: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [area.ping: setAttribute() to ""]
+ expected: FAIL
+
+ [area.ping: 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 "]
+ expected: FAIL
+
+ [area.ping: setAttribute() to undefined]
+ expected: FAIL
+
+ [area.ping: setAttribute() to 7]
+ expected: FAIL
+
+ [area.ping: setAttribute() to 1.5]
+ expected: FAIL
+
+ [area.ping: setAttribute() to "5%"]
+ expected: FAIL
+
+ [area.ping: setAttribute() to "+100"]
+ expected: FAIL
+
+ [area.ping: setAttribute() to ".5"]
+ expected: FAIL
+
+ [area.ping: setAttribute() to true]
+ expected: FAIL
+
+ [area.ping: setAttribute() to false]
+ expected: FAIL
+
+ [area.ping: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [area.ping: setAttribute() to NaN]
+ expected: FAIL
+
+ [area.ping: setAttribute() to Infinity]
+ expected: FAIL
+
+ [area.ping: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [area.ping: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [area.ping: setAttribute() to null]
+ expected: FAIL
+
+ [area.ping: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [area.ping: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [area.ping: IDL set to ""]
+ expected: FAIL
+
+ [area.ping: IDL set 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 "]
+ expected: FAIL
+
+ [area.ping: IDL set to undefined]
+ expected: FAIL
+
+ [area.ping: IDL set to 7]
+ expected: FAIL
+
+ [area.ping: IDL set to 1.5]
+ expected: FAIL
+
+ [area.ping: IDL set to "5%"]
+ expected: FAIL
+
+ [area.ping: IDL set to "+100"]
+ expected: FAIL
+
+ [area.ping: IDL set to ".5"]
+ expected: FAIL
+
+ [area.ping: IDL set to true]
+ expected: FAIL
+
+ [area.ping: IDL set to false]
+ expected: FAIL
+
+ [area.ping: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [area.ping: IDL set to NaN]
+ expected: FAIL
+
+ [area.ping: IDL set to Infinity]
+ expected: FAIL
+
+ [area.ping: IDL set to -Infinity]
+ expected: FAIL
+
+ [area.ping: IDL set to "\\0"]
+ expected: FAIL
+
+ [area.ping: IDL set to null]
+ expected: FAIL
+
+ [area.ping: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [area.ping: IDL set to object "test-valueOf"]
+ expected: FAIL
+
+ [area.noHref: typeof IDL attribute]
+ expected: FAIL
+
+ [area.noHref: IDL get with DOM attribute unset]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to ""]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to " foo "]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to undefined]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to null]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to 7]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to 1.5]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to "5%"]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to "+100"]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to ".5"]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to true]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to false]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to object "[object Object\]"]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to NaN]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to Infinity]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to -Infinity]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to "\\0"]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to object "test-toString"]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to object "test-valueOf"]
+ expected: FAIL
+
+ [area.noHref: setAttribute() to "noHref"]
+ expected: FAIL
+
+ [area.noHref: IDL set to ""]
+ expected: FAIL
+
+ [area.noHref: IDL set to " foo "]
+ expected: FAIL
+
+ [area.noHref: IDL set to undefined]
+ expected: FAIL
+
+ [area.noHref: IDL set to null]
+ expected: FAIL
+
+ [area.noHref: IDL set to 7]
+ expected: FAIL
+
+ [area.noHref: IDL set to 1.5]
+ expected: FAIL
+
+ [area.noHref: IDL set to "5%"]
+ expected: FAIL
+
+ [area.noHref: IDL set to "+100"]
+ expected: FAIL
+
+ [area.noHref: IDL set to ".5"]
+ expected: FAIL
+
+ [area.noHref: IDL set to false]
+ expected: FAIL
+
+ [area.noHref: IDL set to object "[object Object\]"]
+ expected: FAIL
+
+ [area.noHref: IDL set to NaN]
+ expected: FAIL
+
+ [area.noHref: IDL set to Infinity]
+ expected: FAIL
+
+ [area.noHref: IDL set to -Infinity]
+ expected: FAIL
+
+ [area.noHref: IDL set to "\\0"]
+ expected: FAIL
+
+ [area.noHref: IDL set to object "test-toString"]
+ expected: FAIL
+
+ [area.noHref: IDL set to object "test-valueOf"]
+ expected: FAIL
diff --git a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/messagechannel.any.js.ini b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/messagechannel.any.js.ini
index 563d7e04f6d..71a1c6a92be 100644
--- a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/messagechannel.any.js.ini
+++ b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/messagechannel.any.js.ini
@@ -49,24 +49,6 @@
[Object ImageData object, ImageData 1x1 non-transparent non-black]
expected: FAIL
- [ImageBitmap 1x1 transparent black]
- expected: FAIL
-
- [ImageBitmap 1x1 non-transparent non-black]
- expected: FAIL
-
- [Array ImageBitmap object, ImageBitmap 1x1 transparent black]
- expected: FAIL
-
- [Array ImageBitmap object, ImageBitmap 1x1 transparent non-black]
- expected: FAIL
-
- [Object ImageBitmap object, ImageBitmap 1x1 transparent black]
- expected: FAIL
-
- [Object ImageBitmap object, ImageBitmap 1x1 transparent non-black]
- expected: FAIL
-
[A subclass instance will deserialize as its closest serializable superclass]
expected: FAIL
diff --git a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window.js.ini b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window.js.ini
index d79a86e4cfa..57c984434b8 100644
--- a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window.js.ini
+++ b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window.js.ini
@@ -5,15 +5,9 @@
[Serialize should throw before a detached MessagePort is found]
expected: FAIL
- [Serialize should make the ImageBitmap detached, so it cannot be transferred again]
- expected: FAIL
-
[Serialize should throw before a detached ImageBitmap is found]
expected: FAIL
- [Cannot transfer ImageBitmap detached while the message was serialized]
- expected: FAIL
-
[Serialize should make the OffscreenCanvas detached, so it cannot be transferred again]
expected: FAIL
diff --git a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/window-postmessage.window.js.ini b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/window-postmessage.window.js.ini
index 0987b09c0aa..06b9002470b 100644
--- a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/window-postmessage.window.js.ini
+++ b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/window-postmessage.window.js.ini
@@ -29,24 +29,6 @@
[Object ImageData object, ImageData 1x1 non-transparent non-black]
expected: FAIL
- [ImageBitmap 1x1 transparent black]
- expected: FAIL
-
- [ImageBitmap 1x1 non-transparent non-black]
- expected: FAIL
-
- [Array ImageBitmap object, ImageBitmap 1x1 transparent black]
- expected: FAIL
-
- [Array ImageBitmap object, ImageBitmap 1x1 transparent non-black]
- expected: FAIL
-
- [Object ImageBitmap object, ImageBitmap 1x1 transparent black]
- expected: FAIL
-
- [Object ImageBitmap object, ImageBitmap 1x1 transparent non-black]
- expected: FAIL
-
[A subclass instance will deserialize as its closest serializable superclass]
expected: FAIL
diff --git a/tests/wpt/meta/html/webappapis/structured-clone/structured-clone.any.js.ini b/tests/wpt/meta/html/webappapis/structured-clone/structured-clone.any.js.ini
index 0b9d6c7223b..2bc19a50005 100644
--- a/tests/wpt/meta/html/webappapis/structured-clone/structured-clone.any.js.ini
+++ b/tests/wpt/meta/html/webappapis/structured-clone/structured-clone.any.js.ini
@@ -43,24 +43,6 @@
[Object ImageData object, ImageData 1x1 non-transparent non-black]
expected: FAIL
- [ImageBitmap 1x1 transparent black]
- expected: FAIL
-
- [ImageBitmap 1x1 non-transparent non-black]
- expected: FAIL
-
- [Array ImageBitmap object, ImageBitmap 1x1 transparent black]
- expected: FAIL
-
- [Array ImageBitmap object, ImageBitmap 1x1 transparent non-black]
- expected: FAIL
-
- [Object ImageBitmap object, ImageBitmap 1x1 transparent black]
- expected: FAIL
-
- [Object ImageBitmap object, ImageBitmap 1x1 transparent non-black]
- expected: FAIL
-
[A subclass instance will deserialize as its closest serializable superclass]
expected: FAIL
diff --git a/tests/wpt/meta/webmessaging/postMessage_cross_domain_image_transfer_2d.sub.htm.ini b/tests/wpt/meta/webmessaging/postMessage_cross_domain_image_transfer_2d.sub.htm.ini
index cfa170f7f83..c392daab65c 100644
--- a/tests/wpt/meta/webmessaging/postMessage_cross_domain_image_transfer_2d.sub.htm.ini
+++ b/tests/wpt/meta/webmessaging/postMessage_cross_domain_image_transfer_2d.sub.htm.ini
@@ -1,9 +1,10 @@
[postMessage_cross_domain_image_transfer_2d.sub.htm]
+ expected: TIMEOUT
[sending 2D canvas ImageBitmap to http://web-platform.test:8000]
- expected: FAIL
+ expected: TIMEOUT
[sending 2D canvas ImageBitmap to http://www1.web-platform.test:8000]
- expected: FAIL
+ expected: NOTRUN
[sending 2D canvas ImageBitmap to http://not-web-platform.test:8000]
- expected: FAIL
+ expected: NOTRUN
diff --git a/tests/wpt/meta/workers/semantics/structured-clone/dedicated.html.ini b/tests/wpt/meta/workers/semantics/structured-clone/dedicated.html.ini
index eb509b54b7d..4e647012bd5 100644
--- a/tests/wpt/meta/workers/semantics/structured-clone/dedicated.html.ini
+++ b/tests/wpt/meta/workers/semantics/structured-clone/dedicated.html.ini
@@ -32,24 +32,6 @@
[Object with a getter that throws]
expected: FAIL
- [ImageBitmap 1x1 transparent black]
- expected: FAIL
-
- [ImageBitmap 1x1 non-transparent non-black]
- expected: FAIL
-
- [Array ImageBitmap object, ImageBitmap 1x1 transparent black]
- expected: FAIL
-
- [Array ImageBitmap object, ImageBitmap 1x1 transparent non-black]
- expected: FAIL
-
- [Object ImageBitmap object, ImageBitmap 1x1 transparent black]
- expected: FAIL
-
- [Object ImageBitmap object, ImageBitmap 1x1 transparent non-black]
- expected: FAIL
-
[A subclass instance will deserialize as its closest serializable superclass]
expected: FAIL
diff --git a/tests/wpt/mozilla/meta/mozilla/sslfail.html.ini b/tests/wpt/mozilla/meta/mozilla/sslfail.html.ini
deleted file mode 100644
index 0c722d3efd7..00000000000
--- a/tests/wpt/mozilla/meta/mozilla/sslfail.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[sslfail.html]
- type: reftest
- disabled: https://github.com/servo/servo/issues/10760
diff --git a/tests/wpt/tests/css/CSS2/zindex/z-index-020.html b/tests/wpt/tests/css/CSS2/zindex/z-index-020.html
new file mode 100644
index 00000000000..34a7272a254
--- /dev/null
+++ b/tests/wpt/tests/css/CSS2/zindex/z-index-020.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<title>CSS Test: z-index - dynamic changes</title>
+<link rel="author" title="Oriol Brufau" href="obrufau@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#z-index" />
+<link rel="match" href="../../reference/ref-filled-green-200px-square.html">
+<meta name="assert" content="Checks that z-index can be changed dynamically.">
+<style>
+div {
+ width: 200px;
+ height: 200px;
+ position: absolute;
+}
+#red {
+ background: red;
+}
+#target {
+ background: green;
+ z-index: -1;
+}
+#target.front {
+ z-index: 1;
+}
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="red"></div>
+<div id="target"></div>
+
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/rendering-utils.js"></script>
+<script>
+waitForAtLeastOneFrame().then(() => {
+ document.getElementById("target").className = "front";
+ takeScreenshot();
+});
+</script>
+</html>
diff --git a/tests/wpt/webgl/meta/conformance/more/conformance/quickCheckAPI-S_V.html.ini b/tests/wpt/webgl/meta/conformance/more/conformance/quickCheckAPI-S_V.html.ini
index 0f3b0f5348b..210035f6b69 100644
--- a/tests/wpt/webgl/meta/conformance/more/conformance/quickCheckAPI-S_V.html.ini
+++ b/tests/wpt/webgl/meta/conformance/more/conformance/quickCheckAPI-S_V.html.ini
@@ -1,2 +1,3 @@
[quickCheckAPI-S_V.html]
- disabled: https://github.com/servo/servo/issues/10656
+ [WebGL test #0]
+ expected: FAIL
diff --git a/third_party/WebIDL/WebIDL.py b/third_party/WebIDL/WebIDL.py
index 40e118e3781..bad5cbe54ca 100644
--- a/third_party/WebIDL/WebIDL.py
+++ b/third_party/WebIDL/WebIDL.py
@@ -2106,6 +2106,7 @@ class IDLInterface(IDLInterfaceOrNamespace):
or identifier == "Serializable"
or identifier == "Abstract"
or identifier == "Inline"
+ or identifier == "Transferable"
):
# Known extended attributes that do not take values
if not attr.noArguments():
diff --git a/third_party/WebIDL/transferable.patch b/third_party/WebIDL/transferable.patch
new file mode 100644
index 00000000000..9ea1ffa3427
--- /dev/null
+++ b/third_party/WebIDL/transferable.patch
@@ -0,0 +1,12 @@
+diff --git a/third_party/WebIDL/WebIDL.py b/third_party/WebIDL/WebIDL.py
+index 40e118e3781..bad5cbe54ca 100644
+--- a/third_party/WebIDL/WebIDL.py
++++ b/third_party/WebIDL/WebIDL.py
+@@ -2106,6 +2106,7 @@ class IDLInterface(IDLInterfaceOrNamespace):
+ or identifier == "Serializable"
+ or identifier == "Abstract"
+ or identifier == "Inline"
++ or identifier == "Transferable"
+ ):
+ # Known extended attributes that do not take values
+ if not attr.noArguments():
diff --git a/third_party/WebIDL/update.sh b/third_party/WebIDL/update.sh
index 949644405d2..794331dc9bf 100755
--- a/third_party/WebIDL/update.sh
+++ b/third_party/WebIDL/update.sh
@@ -7,6 +7,7 @@ patch < inline.patch
patch < like-as-iterable.patch
patch < builtin-array.patch
patch < array-type.patch
+patch < transferable.patch
wget https://hg.mozilla.org/mozilla-central/archive/tip.zip/dom/bindings/parser/tests/ -O tests.zip
rm -r tests