author  Noemi Erli <nerli@mozilla.com> 
Tue, 18 Jun 2019 08:44:42 +0300  
changeset 479099  f0d1b44ac7a9337d17fe7c89cf08adf9923a33a1 
parent 479098  30e6693ef586c18a1c067cb361cbe9ce97d56b6b 
child 479100  ca2969a2506b5f15e9d7b233e2725fb0b32fcca4 
push id  36168 
push user  csabou@mozilla.com 
push date  Tue, 18 Jun 2019 15:56:50 +0000 
treeherder  mozillacentral@2af46ed2e59b [default view] [failures only] 
perfherder  [talos] [build metrics] [platform microbench] (compared to previous push) 
bugs  1559796 
milestone  69.0a1 
backs out  a2a92e2fd645c26336792250400ff99d7c35fe2e 
first release with  nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64

last release without  nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64

 a/layout/style/test/test_transitions_per_property.html +++ b/layout/style/test/test_transitions_per_property.html @@ 847,17 +847,17 @@ const basicShapesTests = [ expected: ["circle", ["50px at 50% 50%"]] }, { start: "circle(closestside)", end: "circle(500px)", expected: ["circle", ["500px at 50% 50%"]] }, { start: "circle(farthestside)", end: "circle(500px)", expected: ["circle", ["500px at 50% 50%"]] }, { start: "circle(500px)", end: "circle(farthestside)", expected: ["circle", ["farthestside at 50% 50%"]]}, { start: "circle(500px)", end: "circle(closestside)",  expected: ["circle", ["at 50% 50%"]]}, + expected: ["circle", ["closestside at 50% 50%"]]}, { start: "ellipse()", end: "ellipse(50px 50px)", expected: ["ellipse", ["50px 50px at 50% 50%"]] }, { start: "ellipse(closestside closestside)", end: "ellipse(500px 500px)", expected: ["ellipse", ["500px 500px at 50% 50%"]] }, { start: "ellipse(farthestside closestside)", end: "ellipse(500px 500px)", expected: ["ellipse", ["500px 500px at 50% 50%"]] }, { start: "ellipse(farthestside farthestside)", end: "ellipse(500px 500px)", expected: ["ellipse", ["500px 500px at 50% 50%"]] },
 a/servo/components/style/values/computed/basic_shape.rs +++ b/servo/components/style/values/computed/basic_shape.rs @@ 5,16 +5,18 @@ //! CSS handling for the computed value of //! [`basicshape`][basicshape]s //! //! [basicshape]: https://drafts.csswg.org/cssshapes/#typedefbasicshape use crate::values::computed::url::ComputedUrl; use crate::values::computed::{Image, LengthPercentage, NonNegativeLengthPercentage}; use crate::values::generics::basic_shape as generic; +use std::fmt::{self, Write}; +use style_traits::{CssWriter, ToCss}; /// A computed alias for FillRule. pub use crate::values::generics::basic_shape::FillRule; /// A computed clipping shape. pub type ClippingShape = generic::ClippingShape<BasicShape, ComputedUrl>; /// A computed float area shape. @@ 35,8 +37,39 @@ pub type InsetRect = generic::InsetRect< pub type Circle = generic::Circle<LengthPercentage, LengthPercentage, NonNegativeLengthPercentage>; /// A computed ellipse. pub type Ellipse = generic::Ellipse<LengthPercentage, LengthPercentage, NonNegativeLengthPercentage>; /// The computed value of `ShapeRadius` pub type ShapeRadius = generic::GenericShapeRadius<NonNegativeLengthPercentage>; + +impl ToCss for Circle { + fn to_css<W>(&self, dest: &mut CssWriter<W>) > fmt::Result + where + W: Write, + { + dest.write_str("circle(")?; + self.radius.to_css(dest)?; + dest.write_str(" at ")?; + self.position.to_css(dest)?; + dest.write_str(")") + } +} + +impl ToCss for Ellipse { + fn to_css<W>(&self, dest: &mut CssWriter<W>) > fmt::Result + where + W: Write, + { + dest.write_str("ellipse(")?; + if (self.semiaxis_x, self.semiaxis_y) != Default::default() { + self.semiaxis_x.to_css(dest)?; + dest.write_str(" ")?; + self.semiaxis_y.to_css(dest)?; + dest.write_str(" ")?; + } + dest.write_str("at ")?; + self.position.to_css(dest)?; + dest.write_str(")") + } +}
 a/servo/components/style/values/generics/basic_shape.rs +++ b/servo/components/style/values/generics/basic_shape.rs @@ 373,58 +373,16 @@ where if !self.round.is_zero() { dest.write_str(" round ")?; self.round.to_css(dest)?; } dest.write_str(")") } } impl<H, V, NonNegativeLengthPercentage> ToCss for Circle<H, V, NonNegativeLengthPercentage> where  GenericPosition<H, V>: ToCss,  NonNegativeLengthPercentage: ToCss + PartialEq, {  fn to_css<W>(&self, dest: &mut CssWriter<W>) > fmt::Result  where  W: Write,  {  dest.write_str("circle(")?;  if self.radius != Default::default() {  self.radius.to_css(dest)?;  dest.write_str(" ")?;  }  dest.write_str("at ")?;  self.position.to_css(dest)?;  dest.write_str(")")  } }  impl<H, V, NonNegativeLengthPercentage> ToCss for Ellipse<H, V, NonNegativeLengthPercentage> where  GenericPosition<H, V>: ToCss,  NonNegativeLengthPercentage: ToCss + PartialEq, {  fn to_css<W>(&self, dest: &mut CssWriter<W>) > fmt::Result  where  W: Write,  {  dest.write_str("ellipse(")?;  if self.semiaxis_x != Default::default()  self.semiaxis_y != Default::default() {  self.semiaxis_x.to_css(dest)?;  dest.write_str(" ")?;  self.semiaxis_y.to_css(dest)?;  dest.write_str(" ")?;  }  dest.write_str("at ")?;  self.position.to_css(dest)?;  dest.write_str(")")  } }  impl<L> Default for ShapeRadius<L> { #[inline] fn default() > Self { ShapeRadius::ClosestSide } } impl<L> Animate for Polygon<L>
 a/servo/components/style/values/specified/basic_shape.rs +++ b/servo/components/style/values/specified/basic_shape.rs @@ 15,17 +15,18 @@ use crate::values::generics::rect::Rect; use crate::values::specified::border::BorderRadius; use crate::values::specified::image::Image; use crate::values::specified::position::{HorizontalPosition, Position, VerticalPosition}; use crate::values::specified::url::SpecifiedUrl; use crate::values::specified::SVGPathData; use crate::values::specified::{LengthPercentage, NonNegativeLengthPercentage}; use crate::Zero; use cssparser::Parser; use style_traits::{ParseError, StyleParseErrorKind}; +use std::fmt::{self, Write}; +use style_traits::{CssWriter, ParseError, StyleParseErrorKind, ToCss}; /// A specified alias for FillRule. pub use crate::values::generics::basic_shape::FillRule; /// A specified clipping shape. pub type ClippingShape = generic::ClippingShape<BasicShape, SpecifiedUrl>; /// A specified float area shape. @@ 233,16 +234,33 @@ impl Circle { } else { Position::center() }; Ok(generic::Circle { radius, position }) } } +impl ToCss for Circle { + fn to_css<W>(&self, dest: &mut CssWriter<W>) > fmt::Result + where + W: Write, + { + dest.write_str("circle(")?; + if generic::ShapeRadius::ClosestSide != self.radius { + self.radius.to_css(dest)?; + dest.write_str(" ")?; + } + + dest.write_str("at ")?; + self.position.to_css(dest)?; + dest.write_str(")") + } +} + impl Parse for Ellipse { fn parse<'i, 't>( context: &ParserContext, input: &mut Parser<'i, 't>, ) > Result<Self, ParseError<'i>> { input.expect_function_matching("ellipse")?; input.parse_nested_block(i Self::parse_function_arguments(context, i)) } @@ 270,16 +288,35 @@ impl Ellipse { Ok(generic::Ellipse { semiaxis_x: a, semiaxis_y: b, position: position, }) } } +impl ToCss for Ellipse { + fn to_css<W>(&self, dest: &mut CssWriter<W>) > fmt::Result + where + W: Write, + { + dest.write_str("ellipse(")?; + if self.semiaxis_x != ShapeRadius::default()  self.semiaxis_y != ShapeRadius::default() { + self.semiaxis_x.to_css(dest)?; + dest.write_str(" ")?; + self.semiaxis_y.to_css(dest)?; + dest.write_str(" ")?; + } + + dest.write_str("at ")?; + self.position.to_css(dest)?; + dest.write_str(")") + } +} + impl Parse for ShapeRadius { fn parse<'i, 't>( context: &ParserContext, input: &mut Parser<'i, 't>, ) > Result<Self, ParseError<'i>> { if let Ok(lp) = input.try(i NonNegativeLengthPercentage::parse(context, i)) { return Ok(generic::ShapeRadius::Length(lp)); }
new file mode 100644  /dev/null +++ b/testing/webplatform/meta/css/cssshapes/parsing/shapeoutsidecomputed.html.ini @@ 0,0 +1,4 @@ +[shapeoutsidecomputed.html] + [Property shapeoutside value 'circle(at 10% 20%)' computes to 'circle(at 10% 20%)'] + expected: FAIL +
 a/testing/webplatform/meta/css/cssshapes/shapeoutside/values/shapeoutsidecircle000.html.ini +++ b/testing/webplatform/meta/css/cssshapes/shapeoutside/values/shapeoutsidecircle000.html.ini @@ 1,7 +1,13 @@ [shapeoutsidecircle000.html] + [No arguments  computed] + expected: FAIL + + [Position argument only  computed] + expected: FAIL + [No arguments  inline] expected: FAIL [Radial argument only  inline] expected: FAIL
 a/testing/webplatform/meta/css/cssshapes/shapeoutside/values/shapeoutsidecircle001.html.ini +++ b/testing/webplatform/meta/css/cssshapes/shapeoutside/values/shapeoutsidecircle001.html.ini @@ 1,9 +1,15 @@ [shapeoutsidecircle001.html] + [circle()  computed] + expected: FAIL + + [circle(closestside)  computed] + expected: FAIL + [circle()  inline] expected: FAIL [circle(50px)  inline] expected: FAIL [circle(50%)  inline] expected: FAIL
 a/testing/webplatform/meta/css/cssshapes/shapeoutside/values/shapeoutsidecircle002.html.ini +++ b/testing/webplatform/meta/css/cssshapes/shapeoutside/values/shapeoutsidecircle002.html.ini @@ 1,24 +1,192 @@ [shapeoutsidecircle002.html] + [circle(at 50%) serializes as circle(at 50% 50%)  computed] + expected: FAIL + + [circle(at 50px) serializes as circle(at 50px 50%)  computed] + expected: FAIL + + [circle(at 50% 50%) serializes as circle(at 50% 50%)  computed] + expected: FAIL + + [circle(at 50% 50px) serializes as circle(at 50% 50px)  computed] + expected: FAIL + + [circle(at 50px 50%) serializes as circle(at 50px 50%)  computed] + expected: FAIL + + [circle(at 50px 50px) serializes as circle(at 50px 50px)  computed] + expected: FAIL + + [circle(at left) serializes as circle(at 0% 50%)  computed] + expected: FAIL + + [circle(at top) serializes as circle(at 50% 0%)  computed] + expected: FAIL + + [circle(at right) serializes as circle(at 100% 50%)  computed] + expected: FAIL + + [circle(at bottom) serializes as circle(at 50% 100%)  computed] + expected: FAIL + + [circle(at center) serializes as circle(at 50% 50%)  computed] + expected: FAIL + + [circle(at left top) serializes as circle(at 0% 0%)  computed] + expected: FAIL + + [circle(at left bottom) serializes as circle(at 0% 100%)  computed] + expected: FAIL + + [circle(at left center) serializes as circle(at 0% 50%)  computed] + expected: FAIL + + [circle(at top left) serializes as circle(at 0% 0%)  computed] + expected: FAIL + + [circle(at top right) serializes as circle(at 100% 0%)  computed] + expected: FAIL + + [circle(at top center) serializes as circle(at 50% 0%)  computed] + expected: FAIL + + [circle(at right top) serializes as circle(at 100% 0%)  computed] + expected: FAIL + + [circle(at right bottom) serializes as circle(at 100% 100%)  computed] + expected: FAIL + + [circle(at right center) serializes as circle(at 100% 50%)  computed] + expected: FAIL + + [circle(at bottom left) serializes as circle(at 0% 100%)  computed] + expected: FAIL + + [circle(at bottom right) serializes as circle(at 100% 100%)  computed] + expected: FAIL + + [circle(at bottom center) serializes as circle(at 50% 100%)  computed] + expected: FAIL + + [circle(at center top) serializes as circle(at 50% 0%)  computed] + expected: FAIL + + [circle(at center left) serializes as circle(at 0% 50%)  computed] + expected: FAIL + + [circle(at center right) serializes as circle(at 100% 50%)  computed] + expected: FAIL + + [circle(at center bottom) serializes as circle(at 50% 100%)  computed] + expected: FAIL + + [circle(at center center) serializes as circle(at 50% 50%)  computed] + expected: FAIL + + [circle(at left 50%) serializes as circle(at 0% 50%)  computed] + expected: FAIL + + [circle(at left 50px) serializes as circle(at 0% 50px)  computed] + expected: FAIL + + [circle(at 50% top) serializes as circle(at 50% 0%)  computed] + expected: FAIL + + [circle(at 50px top) serializes as circle(at 50px 0%)  computed] + expected: FAIL + + [circle(at right 80%) serializes as circle(at 100% 80%)  computed] + expected: FAIL + + [circle(at right 80px) serializes as circle(at 100% 80px)  computed] + expected: FAIL + + [circle(at 70% bottom) serializes as circle(at 70% 100%)  computed] + expected: FAIL + + [circle(at 70px bottom) serializes as circle(at 70px 100%)  computed] + expected: FAIL + + [circle(at center 60%) serializes as circle(at 50% 60%)  computed] + expected: FAIL + + [circle(at center 60px) serializes as circle(at 50% 60px)  computed] + expected: FAIL + + [circle(at 60% center) serializes as circle(at 60% 50%)  computed] + expected: FAIL + + [circle(at 60px center) serializes as circle(at 60px 50%)  computed] + expected: FAIL + + [circle(at center top 50%) serializes as circle(at 50% 50%)  computed] + expected: FAIL + + [circle(at center top 50px) serializes as circle(at 50% 50px)  computed] + expected: FAIL + + [circle(at center left 50%) serializes as circle(at 50% 50%)  computed] + expected: FAIL + + [circle(at center left 50px) serializes as circle(at 50px 50%)  computed] + expected: FAIL + + [circle(at center right 70%) serializes as circle(at 30% 50%)  computed] + expected: FAIL + [circle(at center right 70px) serializes as circle(at right 70px top 50%)  computed] expected: FAIL + [circle(at center bottom 70%) serializes as circle(at 50% 30%)  computed] + expected: FAIL + [circle(at center bottom 70px) serializes as circle(at left 50% bottom 70px)  computed] expected: FAIL + [circle(at left top 50%) serializes as circle(at 0% 50%)  computed] + expected: FAIL + + [circle(at left top 50px) serializes as circle(at 0% 50px)  computed] + expected: FAIL + + [circle(at left bottom 70%) serializes as circle(at 0% 30%)  computed] + expected: FAIL + [circle(at left bottom 70px) serializes as circle(at left 0% bottom 70px)  computed] expected: FAIL + [circle(at top left 50%) serializes as circle(at 50% 0%)  computed] + expected: FAIL + + [circle(at top left 50px) serializes as circle(at 50px 0%)  computed] + expected: FAIL + + [circle(at top right 70%) serializes as circle(at 30% 0%)  computed] + expected: FAIL + [circle(at top right 70px) serializes as circle(at right 70px top 0%)  computed] expected: FAIL + [circle(at bottom left 50%) serializes as circle(at 50% 100%)  computed] + expected: FAIL + + [circle(at bottom left 50px) serializes as circle(at 50px 100%)  computed] + expected: FAIL + + [circle(at bottom right 70%) serializes as circle(at 30% 100%)  computed] + expected: FAIL + [circle(at bottom right 70px) serializes as circle(at right 70px top 100%)  computed] expected: FAIL + [circle(at right bottom 70%) serializes as circle(at 100% 30%)  computed] + expected: FAIL + [circle(at right bottom 70px) serializes as circle(at left 100% bottom 70px)  computed] expected: FAIL [circle(at right top 50%) serializes as circle(at 100% 50%)  computed] expected: FAIL [circle(at right top 50px) serializes as circle(at 100% 50px)  computed] expected: FAIL @@ 90,43 +258,97 @@ expected: FAIL [circle(at right 80% top) serializes as circle(at 20% 0%)  computed] expected: FAIL [circle(at right 80px top) serializes as circle(at right 80px top 0%)  computed] expected: FAIL + [circle(at left 50% top 50%) serializes as circle(at 50% 50%)  computed] + expected: FAIL + + [circle(at left 50% top 50px) serializes as circle(at 50% 50px)  computed] + expected: FAIL + + [circle(at left 50% bottom 70%) serializes as circle(at 50% 30%)  computed] + expected: FAIL + [circle(at left 50% bottom 70px) serializes as circle(at left 50% bottom 70px)  computed] expected: FAIL + [circle(at left 50px top 50%) serializes as circle(at 50px 50%)  computed] + expected: FAIL + + [circle(at left 50px top 50px) serializes as circle(at 50px 50px)  computed] + expected: FAIL + + [circle(at left 50px bottom 70%) serializes as circle(at 50px 30%)  computed] + expected: FAIL + [circle(at left 50px bottom 70px) serializes as circle(at left 50px bottom 70px)  computed] expected: FAIL + [circle(at top 50% left 50%) serializes as circle(at 50% 50%)  computed] + expected: FAIL + + [circle(at top 50% left 50px) serializes as circle(at 50px 50%)  computed] + expected: FAIL + + [circle(at top 50% right 80%) serializes as circle(at 20% 50%)  computed] + expected: FAIL + [circle(at top 50% right 80px) serializes as circle(at right 80px top 50%)  computed] expected: FAIL + [circle(at top 50px left 50%) serializes as circle(at 50% 50px)  computed] + expected: FAIL + + [circle(at top 50px left 50px) serializes as circle(at 50px 50px)  computed] + expected: FAIL + + [circle(at top 50px right 80%) serializes as circle(at 20% 50px)  computed] + expected: FAIL + [circle(at top 50px right 80px) serializes as circle(at right 80px top 50px)  computed] expected: FAIL + [circle(at bottom 70% left 50%) serializes as circle(at 50% 30%)  computed] + expected: FAIL + + [circle(at bottom 70% left 50px) serializes as circle(at 50px 30%)  computed] + expected: FAIL + + [circle(at bottom 70% right 80%) serializes as circle(at 20% 30%)  computed] + expected: FAIL + [circle(at bottom 70% right 80px) serializes as circle(at right 80px top 30%)  computed] expected: FAIL [circle(at bottom 70px left 50%) serializes as circle(at left 50% bottom 70px)  computed] expected: FAIL [circle(at bottom 70px left 50px) serializes as circle(at left 50px bottom 70px)  computed] expected: FAIL [circle(at bottom 70px right 80%) serializes as circle(at left 20% bottom 70px)  computed] expected: FAIL [circle(at bottom 70px right 80px) serializes as circle(at right 80px bottom 70px)  computed] expected: FAIL + [circle(at right 80% top 50%) serializes as circle(at 20% 50%)  computed] + expected: FAIL + + [circle(at right 80% top 50px) serializes as circle(at 20% 50px)  computed] + expected: FAIL + + [circle(at right 80% bottom 70%) serializes as circle(at 20% 30%)  computed] + expected: FAIL + [circle(at right 80% bottom 70px) serializes as circle(at left 20% bottom 70px)  computed] expected: FAIL [circle(at right 80px top 50%) serializes as circle(at right 80px top 50%)  computed] expected: FAIL [circle(at right 80px top 50px) serializes as circle(at right 80px top 50px)  computed] expected: FAIL
 a/testing/webplatform/meta/css/cssshapes/shapeoutside/values/shapeoutsidecircle004.html.ini +++ b/testing/webplatform/meta/css/cssshapes/shapeoutside/values/shapeoutsidecircle004.html.ini @@ 168,16 +168,46 @@ expected: FAIL [test unit (computed): cm  circle(at right 80cm bottom 70%)] expected: FAIL [test unit (computed): cm  circle(at right 80cm bottom 70cm)] expected: FAIL + [test unit (computed): mm  circle(at 50mm)] + expected: FAIL + + [test unit (computed): mm  circle(at 50% 50mm)] + expected: FAIL + + [test unit (computed): mm  circle(at 50mm 50%)] + expected: FAIL + + [test unit (computed): mm  circle(at 50mm 50mm)] + expected: FAIL + + [test unit (computed): mm  circle(at left 50mm)] + expected: FAIL + + [test unit (computed): mm  circle(at 50mm top)] + expected: FAIL + + [test unit (computed): mm  circle(at right 80mm)] + expected: FAIL + + [test unit (computed): mm  circle(at 70mm bottom)] + expected: FAIL + + [test unit (computed): mm  circle(at center 60mm)] + expected: FAIL + + [test unit (computed): mm  circle(at 60mm center)] + expected: FAIL + [test unit (computed): mm  circle(at center top 50mm)] expected: FAIL [test unit (computed): mm  circle(at center left 50mm)] expected: FAIL [test unit (computed): mm  circle(at center right 70mm)] expected: FAIL @@ 240,58 +270,118 @@ expected: FAIL [test unit (computed): mm  circle(at right 80mm bottom)] expected: FAIL [test unit (computed): mm  circle(at right 80mm top)] expected: FAIL + [test unit (computed): mm  circle(at left 50% top 50mm)] + expected: FAIL + [test unit (computed): mm  circle(at left 50% bottom 70mm)] expected: FAIL + [test unit (computed): mm  circle(at left 50mm top 50%)] + expected: FAIL + + [test unit (computed): mm  circle(at left 50mm top 50mm)] + expected: FAIL + + [test unit (computed): mm  circle(at left 50mm bottom 70%)] + expected: FAIL + [test unit (computed): mm  circle(at left 50mm bottom 70mm)] expected: FAIL + [test unit (computed): mm  circle(at top 50% left 50mm)] + expected: FAIL + [test unit (computed): mm  circle(at top 50% right 80mm)] expected: FAIL + [test unit (computed): mm  circle(at top 50mm left 50%)] + expected: FAIL + + [test unit (computed): mm  circle(at top 50mm left 50mm)] + expected: FAIL + + [test unit (computed): mm  circle(at top 50mm right 80%)] + expected: FAIL + [test unit (computed): mm  circle(at top 50mm right 80mm)] expected: FAIL + [test unit (computed): mm  circle(at bottom 70% left 50mm)] + expected: FAIL + [test unit (computed): mm  circle(at bottom 70% right 80mm)] expected: FAIL [test unit (computed): mm  circle(at bottom 70mm left 50%)] expected: FAIL [test unit (computed): mm  circle(at bottom 70mm left 50mm)] expected: FAIL [test unit (computed): mm  circle(at bottom 70mm right 80%)] expected: FAIL [test unit (computed): mm  circle(at bottom 70mm right 80mm)] expected: FAIL + [test unit (computed): mm  circle(at right 80% top 50mm)] + expected: FAIL + [test unit (computed): mm  circle(at right 80% bottom 70mm)] expected: FAIL [test unit (computed): mm  circle(at right 80mm top 50%)] expected: FAIL [test unit (computed): mm  circle(at right 80mm top 50mm)] expected: FAIL [test unit (computed): mm  circle(at right 80mm bottom 70%)] expected: FAIL [test unit (computed): mm  circle(at right 80mm bottom 70mm)] expected: FAIL + [test unit (computed): in  circle(at 50in)] + expected: FAIL + + [test unit (computed): in  circle(at 50% 50in)] + expected: FAIL + + [test unit (computed): in  circle(at 50in 50%)] + expected: FAIL + + [test unit (computed): in  circle(at 50in 50in)] + expected: FAIL + + [test unit (computed): in  circle(at left 50in)] + expected: FAIL + + [test unit (computed): in  circle(at 50in top)] + expected: FAIL + + [test unit (computed): in  circle(at right 80in)] + expected: FAIL + + [test unit (computed): in  circle(at 70in bottom)] + expected: FAIL + + [test unit (computed): in  circle(at center 60in)] + expected: FAIL + + [test unit (computed): in  circle(at 60in center)] + expected: FAIL + [test unit (computed): in  circle(at center top 50in)] expected: FAIL [test unit (computed): in  circle(at center left 50in)] expected: FAIL [test unit (computed): in  circle(at center right 70in)] expected: FAIL @@ 354,58 +444,118 @@ expected: FAIL [test unit (computed): in  circle(at right 80in bottom)] expected: FAIL [test unit (computed): in  circle(at right 80in top)] expected: FAIL + [test unit (computed): in  circle(at left 50% top 50in)] + expected: FAIL + [test unit (computed): in  circle(at left 50% bottom 70in)] expected: FAIL + [test unit (computed): in  circle(at left 50in top 50%)] + expected: FAIL + + [test unit (computed): in  circle(at left 50in top 50in)] + expected: FAIL + + [test unit (computed): in  circle(at left 50in bottom 70%)] + expected: FAIL + [test unit (computed): in  circle(at left 50in bottom 70in)] expected: FAIL + [test unit (computed): in  circle(at top 50% left 50in)] + expected: FAIL + [test unit (computed): in  circle(at top 50% right 80in)] expected: FAIL + [test unit (computed): in  circle(at top 50in left 50%)] + expected: FAIL + + [test unit (computed): in  circle(at top 50in left 50in)] + expected: FAIL + + [test unit (computed): in  circle(at top 50in right 80%)] + expected: FAIL + [test unit (computed): in  circle(at top 50in right 80in)] expected: FAIL + [test unit (computed): in  circle(at bottom 70% left 50in)] + expected: FAIL + [test unit (computed): in  circle(at bottom 70% right 80in)] expected: FAIL [test unit (computed): in  circle(at bottom 70in left 50%)] expected: FAIL [test unit (computed): in  circle(at bottom 70in left 50in)] expected: FAIL [test unit (computed): in  circle(at bottom 70in right 80%)] expected: FAIL [test unit (computed): in  circle(at bottom 70in right 80in)] expected: FAIL + [test unit (computed): in  circle(at right 80% top 50in)] + expected: FAIL + [test unit (computed): in  circle(at right 80% bottom 70in)] expected: FAIL [test unit (computed): in  circle(at right 80in top 50%)] expected: FAIL [test unit (computed): in  circle(at right 80in top 50in)] expected: FAIL [test unit (computed): in  circle(at right 80in bottom 70%)] expected: FAIL [test unit (computed): in  circle(at right 80in bottom 70in)] expected: FAIL + [test unit (computed): pt  circle(at 50pt)] + expected: FAIL + + [test unit (computed): pt  circle(at 50% 50pt)] + expected: FAIL + + [test unit (computed): pt  circle(at 50pt 50%)] + expected: FAIL + + [test unit (computed): pt  circle(at 50pt 50pt)] + expected: FAIL + + [test unit (computed): pt  circle(at left 50pt)] + expected: FAIL + + [test unit (computed): pt  circle(at 50pt top)] + expected: FAIL + + [test unit (computed): pt  circle(at right 80pt)] + expected: FAIL + + [test unit (computed): pt  circle(at 70pt bottom)] + expected: FAIL + + [test unit (computed): pt  circle(at center 60pt)] + expected: FAIL + + [test unit (computed): pt  circle(at 60pt center)] + expected: FAIL + [test unit (computed): pt  circle(at center top 50pt)] expected: FAIL [test unit (computed): pt  circle(at center left 50pt)] expected: FAIL [test unit (computed): pt  circle(at center right 70pt)] expected: FAIL @@ 468,58 +618,118 @@ expected: FAIL [test unit (computed): pt  circle(at right 80pt bottom)] expected: FAIL [test unit (computed): pt  circle(at right 80pt top)] expected: FAIL + [test unit (computed): pt  circle(at left 50% top 50pt)] + expected: FAIL + [test unit (computed): pt  circle(at left 50% bottom 70pt)] expected: FAIL + [test unit (computed): pt  circle(at left 50pt top 50%)] + expected: FAIL + + [test unit (computed): pt  circle(at left 50pt top 50pt)] + expected: FAIL + + [test unit (computed): pt  circle(at left 50pt bottom 70%)] + expected: FAIL + [test unit (computed): pt  circle(at left 50pt bottom 70pt)] expected: FAIL + [test unit (computed): pt  circle(at top 50% left 50pt)] + expected: FAIL + [test unit (computed): pt  circle(at top 50% right 80pt)] expected: FAIL + [test unit (computed): pt  circle(at top 50pt left 50%)] + expected: FAIL + + [test unit (computed): pt  circle(at top 50pt left 50pt)] + expected: FAIL + + [test unit (computed): pt  circle(at top 50pt right 80%)] + expected: FAIL + [test unit (computed): pt  circle(at top 50pt right 80pt)] expected: FAIL + [test unit (computed): pt  circle(at bottom 70% left 50pt)] + expected: FAIL + [test unit (computed): pt  circle(at bottom 70% right 80pt)] expected: FAIL [test unit (computed): pt  circle(at bottom 70pt left 50%)] expected: FAIL [test unit (computed): pt  circle(at bottom 70pt left 50pt)] expected: FAIL [test unit (computed): pt  circle(at bottom 70pt right 80%)] expected: FAIL [test unit (computed): pt  circle(at bottom 70pt right 80pt)] expected: FAIL + [test unit (computed): pt  circle(at right 80% top 50pt)] + expected: FAIL + [test unit (computed): pt  circle(at right 80% bottom 70pt)] expected: FAIL [test unit (computed): pt  circle(at right 80pt top 50%)] expected: FAIL [test unit (computed): pt  circle(at right 80pt top 50pt)] expected: FAIL [test unit (computed): pt  circle(at right 80pt bottom 70%)] expected: FAIL [test unit (computed): pt  circle(at right 80pt bottom 70pt)] expected: FAIL + [test unit (computed): pc  circle(at 50pc)] + expected: FAIL + + [test unit (computed): pc  circle(at 50% 50pc)] + expected: FAIL + + [test unit (computed): pc  circle(at 50pc 50%)] + expected: FAIL + + [test unit (computed): pc  circle(at 50pc 50pc)] + expected: FAIL + + [test unit (computed): pc  circle(at left 50pc)] + expected: FAIL + + [test unit (computed): pc  circle(at 50pc top)] + expected: FAIL + + [test unit (computed): pc  circle(at right 80pc)] + expected: FAIL + + [test unit (computed): pc  circle(at 70pc bottom)] + expected: FAIL + + [test unit (computed): pc  circle(at center 60pc)] + expected: FAIL + + [test unit (computed): pc  circle(at 60pc center)] + expected: FAIL + [test unit (computed): pc  circle(at center top 50pc)] expected: FAIL [test unit (computed): pc  circle(at center left 50pc)] expected: FAIL [test unit (computed): pc  circle(at center right 70pc)] expected: FAIL @@ 582,58 +792,118 @@ expected: FAIL [test unit (computed): pc  circle(at right 80pc bottom)] expected: FAIL [test unit (computed): pc  circle(at right 80pc top)] expected: FAIL + [test unit (computed): pc  circle(at left 50% top 50pc)] + expected: FAIL + [test unit (computed): pc  circle(at left 50% bottom 70pc)] expected: FAIL + [test unit (computed): pc  circle(at left 50pc top 50%)] + expected: FAIL + + [test unit (computed): pc  circle(at left 50pc top 50pc)] + expected: FAIL + + [test unit (computed): pc  circle(at left 50pc bottom 70%)] + expected: FAIL + [test unit (computed): pc  circle(at left 50pc bottom 70pc)] expected: FAIL + [test unit (computed): pc  circle(at top 50% left 50pc)] + expected: FAIL + [test unit (computed): pc  circle(at top 50% right 80pc)] expected: FAIL + [test unit (computed): pc  circle(at top 50pc left 50%)] + expected: FAIL + + [test unit (computed): pc  circle(at top 50pc left 50pc)] + expected: FAIL + + [test unit (computed): pc  circle(at top 50pc right 80%)] + expected: FAIL + [test unit (computed): pc  circle(at top 50pc right 80pc)] expected: FAIL + [test unit (computed): pc  circle(at bottom 70% left 50pc)] + expected: FAIL + [test unit (computed): pc  circle(at bottom 70% right 80pc)] expected: FAIL [test unit (computed): pc  circle(at bottom 70pc left 50%)] expected: FAIL [test unit (computed): pc  circle(at bottom 70pc left 50pc)] expected: FAIL [test unit (computed): pc  circle(at bottom 70pc right 80%)] expected: FAIL [test unit (computed): pc  circle(at bottom 70pc right 80pc)] expected: FAIL + [test unit (computed): pc  circle(at right 80% top 50pc)] + expected: FAIL + [test unit (computed): pc  circle(at right 80% bottom 70pc)] expected: FAIL [test unit (computed): pc  circle(at right 80pc top 50%)] expected: FAIL [test unit (computed): pc  circle(at right 80pc top 50pc)] expected: FAIL [test unit (computed): pc  circle(at right 80pc bottom 70%)] expected: FAIL [test unit (computed): pc  circle(at right 80pc bottom 70pc)] expected: FAIL + [test unit (computed): em  circle(at 50em)] + expected: FAIL + + [test unit (computed): em  circle(at 50% 50em)] + expected: FAIL + + [test unit (computed): em  circle(at 50em 50%)] + expected: FAIL + + [test unit (computed): em  circle(at 50em 50em)] + expected: FAIL + + [test unit (computed): em  circle(at left 50em)] + expected: FAIL + + [test unit (computed): em  circle(at 50em top)] + expected: FAIL + + [test unit (computed): em  circle(at right 80em)] + expected: FAIL + + [test unit (computed): em  circle(at 70em bottom)] + expected: FAIL + + [test unit (computed): em  circle(at center 60em)] + expected: FAIL + + [test unit (computed): em  circle(at 60em center)] + expected: FAIL + [test unit (computed): em  circle(at center top 50em)] expected: FAIL [test unit (computed): em  circle(at center left 50em)] expected: FAIL [test unit (computed): em  circle(at center right 70em)] expected: FAIL @@ 696,43 +966,73 @@ expected: FAIL [test unit (computed): em  circle(at right 80em bottom)] expected: FAIL [test unit (computed): em  circle(at right 80em top)] expected: FAIL + [test unit (computed): em  circle(at left 50% top 50em)] + expected: FAIL + [test unit (computed): em  circle(at left 50% bottom 70em)] expected: FAIL + [test unit (computed): em  circle(at left 50em top 50%)] + expected: FAIL + + [test unit (computed): em  circle(at left 50em top 50em)] + expected: FAIL + + [test unit (computed): em  circle(at left 50em bottom 70%)] + expected: FAIL + [test unit (computed): em  circle(at left 50em bottom 70em)] expected: FAIL + [test unit (computed): em  circle(at top 50% left 50em)] + expected: FAIL + [test unit (computed): em  circle(at top 50% right 80em)] expected: FAIL + [test unit (computed): em  circle(at top 50em left 50%)] + expected: FAIL + + [test unit (computed): em  circle(at top 50em left 50em)] + expected: FAIL + + [test unit (computed): em  circle(at top 50em right 80%)] + expected: FAIL + [test unit (computed): em  circle(at top 50em right 80em)] expected: FAIL + [test unit (computed): em  circle(at bottom 70% left 50em)] + expected: FAIL + [test unit (computed): em  circle(at bottom 70% right 80em)] expected: FAIL [test unit (computed): em  circle(at bottom 70em left 50%)] expected: FAIL [test unit (computed): em  circle(at bottom 70em left 50em)] expected: FAIL [test unit (computed): em  circle(at bottom 70em right 80%)] expected: FAIL [test unit (computed): em  circle(at bottom 70em right 80em)] expected: FAIL + [test unit (computed): em  circle(at right 80% top 50em)] + expected: FAIL + [test unit (computed): em  circle(at right 80% bottom 70em)] expected: FAIL [test unit (computed): em  circle(at right 80em top 50%)] expected: FAIL [test unit (computed): em  circle(at right 80em top 50em)] expected: FAIL @@ 912,16 +1212,46 @@ expected: FAIL [test unit (computed): ex  circle(at right 80ex bottom 70%)] expected: FAIL [test unit (computed): ex  circle(at right 80ex bottom 70ex)] expected: FAIL + [test unit (computed): ch  circle(at 50ch)] + expected: FAIL + + [test unit (computed): ch  circle(at 50% 50ch)] + expected: FAIL + + [test unit (computed): ch  circle(at 50ch 50%)] + expected: FAIL + + [test unit (computed): ch  circle(at 50ch 50ch)] + expected: FAIL + + [test unit (computed): ch  circle(at left 50ch)] + expected: FAIL + + [test unit (computed): ch  circle(at 50ch top)] + expected: FAIL + + [test unit (computed): ch  circle(at right 80ch)] + expected: FAIL + + [test unit (computed): ch  circle(at 70ch bottom)] + expected: FAIL + + [test unit (computed): ch  circle(at center 60ch)] + expected: FAIL + + [test unit (computed): ch  circle(at 60ch center)] + expected: FAIL + [test unit (computed): ch  circle(at center top 50ch)] expected: FAIL [test unit (computed): ch  circle(at center left 50ch)] expected: FAIL [test unit (computed): ch  circle(at center right 70ch)] expected: FAIL @@ 984,58 +1314,118 @@ expected: FAIL [test unit (computed): ch  circle(at right 80ch bottom)] expected: FAIL [test unit (computed): ch  circle(at right 80ch top)] expected: FAIL + [test unit (computed): ch  circle(at left 50% top 50ch)] + expected: FAIL + [test unit (computed): ch  circle(at left 50% bottom 70ch)] expected: FAIL + [test unit (computed): ch  circle(at left 50ch top 50%)] + expected: FAIL + + [test unit (computed): ch  circle(at left 50ch top 50ch)] + expected: FAIL + + [test unit (computed): ch  circle(at left 50ch bottom 70%)] + expected: FAIL + [test unit (computed): ch  circle(at left 50ch bottom 70ch)] expected: FAIL + [test unit (computed): ch  circle(at top 50% left 50ch)] + expected: FAIL + [test unit (computed): ch  circle(at top 50% right 80ch)] expected: FAIL + [test unit (computed): ch  circle(at top 50ch left 50%)] + expected: FAIL + + [test unit (computed): ch  circle(at top 50ch left 50ch)] + expected: FAIL + + [test unit (computed): ch  circle(at top 50ch right 80%)] + expected: FAIL + [test unit (computed): ch  circle(at top 50ch right 80ch)] expected: FAIL + [test unit (computed): ch  circle(at bottom 70% left 50ch)] + expected: FAIL + [test unit (computed): ch  circle(at bottom 70% right 80ch)] expected: FAIL [test unit (computed): ch  circle(at bottom 70ch left 50%)] expected: FAIL [test unit (computed): ch  circle(at bottom 70ch left 50ch)] expected: FAIL [test unit (computed): ch  circle(at bottom 70ch right 80%)] expected: FAIL [test unit (computed): ch  circle(at bottom 70ch right 80ch)] expected: FAIL + [test unit (computed): ch  circle(at right 80% top 50ch)] + expected: FAIL + [test unit (computed): ch  circle(at right 80% bottom 70ch)] expected: FAIL [test unit (computed): ch  circle(at right 80ch top 50%)] expected: FAIL [test unit (computed): ch  circle(at right 80ch top 50ch)] expected: FAIL [test unit (computed): ch  circle(at right 80ch bottom 70%)] expected: FAIL [test unit (computed): ch  circle(at right 80ch bottom 70ch)] expected: FAIL + [test unit (computed): rem  circle(at 50rem)] + expected: FAIL + + [test unit (computed): rem  circle(at 50% 50rem)] + expected: FAIL + + [test unit (computed): rem  circle(at 50rem 50%)] + expected: FAIL + + [test unit (computed): rem  circle(at 50rem 50rem)] + expected: FAIL + + [test unit (computed): rem  circle(at left 50rem)] + expected: FAIL + + [test unit (computed): rem  circle(at 50rem top)] + expected: FAIL + + [test unit (computed): rem  circle(at right 80rem)] + expected: FAIL + + [test unit (computed): rem  circle(at 70rem bottom)] + expected: FAIL + + [test unit (computed): rem  circle(at center 60rem)] + expected: FAIL + + [test unit (computed): rem  circle(at 60rem center)] + expected: FAIL + [test unit (computed): rem  circle(at center top 50rem)] expected: FAIL [test unit (computed): rem  circle(at center left 50rem)] expected: FAIL [test unit (computed): rem  circle(at center right 70rem)] expected: FAIL @@ 1098,58 +1488,118 @@ expected: FAIL [test unit (computed): rem  circle(at right 80rem bottom)] expected: FAIL [test unit (computed): rem  circle(at right 80rem top)] expected: FAIL + [test unit (computed): rem  circle(at left 50% top 50rem)] + expected: FAIL + [test unit (computed): rem  circle(at left 50% bottom 70rem)] expected: FAIL + [test unit (computed): rem  circle(at left 50rem top 50%)] + expected: FAIL + + [test unit (computed): rem  circle(at left 50rem top 50rem)] + expected: FAIL + + [test unit (computed): rem  circle(at left 50rem bottom 70%)] + expected: FAIL + [test unit (computed): rem  circle(at left 50rem bottom 70rem)] expected: FAIL + [test unit (computed): rem  circle(at top 50% left 50rem)] + expected: FAIL + [test unit (computed): rem  circle(at top 50% right 80rem)] expected: FAIL + [test unit (computed): rem  circle(at top 50rem left 50%)] + expected: FAIL + + [test unit (computed): rem  circle(at top 50rem left 50rem)] + expected: FAIL + + [test unit (computed): rem  circle(at top 50rem right 80%)] + expected: FAIL + [test unit (computed): rem  circle(at top 50rem right 80rem)] expected: FAIL + [test unit (computed): rem  circle(at bottom 70% left 50rem)] + expected: FAIL + [test unit (computed): rem  circle(at bottom 70% right 80rem)] expected: FAIL [test unit (computed): rem  circle(at bottom 70rem left 50%)] expected: FAIL [test unit (computed): rem  circle(at bottom 70rem left 50rem)] expected: FAIL [test unit (computed): rem  circle(at bottom 70rem right 80%)] expected: FAIL [test unit (computed): rem  circle(at bottom 70rem right 80rem)] expected: FAIL + [test unit (computed): rem  circle(at right 80% top 50rem)] + expected: FAIL + [test unit (computed): rem  circle(at right 80% bottom 70rem)] expected: FAIL [test unit (computed): rem  circle(at right 80rem top 50%)] expected: FAIL [test unit (computed): rem  circle(at right 80rem top 50rem)] expected: FAIL [test unit (computed): rem  circle(at right 80rem bottom 70%)] expected: FAIL [test unit (computed): rem  circle(at right 80rem bottom 70rem)] expected: FAIL + [test unit (computed): vw  circle(at 50vw)] + expected: FAIL + + [test unit (computed): vw  circle(at 50% 50vw)] + expected: FAIL + + [test unit (computed): vw  circle(at 50vw 50%)] + expected: FAIL + + [test unit (computed): vw  circle(at 50vw 50vw)] + expected: FAIL + + [test unit (computed): vw  circle(at left 50vw)] + expected: FAIL + + [test unit (computed): vw  circle(at 50vw top)] + expected: FAIL + + [test unit (computed): vw  circle(at right 80vw)] + expected: FAIL + + [test unit (computed): vw  circle(at 70vw bottom)] + expected: FAIL + + [test unit (computed): vw  circle(at center 60vw)] + expected: FAIL + + [test unit (computed): vw  circle(at 60vw center)] + expected: FAIL + [test unit (computed): vw  circle(at center top 50vw)] expected: FAIL [test unit (computed): vw  circle(at center left 50vw)] expected: FAIL [test unit (computed): vw  circle(at center right 70vw)] expected: FAIL @@ 1212,58 +1662,118 @@ expected: FAIL [test unit (computed): vw  circle(at right 80vw bottom)] expected: FAIL [test unit (computed): vw  circle(at right 80vw top)] expected: FAIL + [test unit (computed): vw  circle(at left 50% top 50vw)] + expected: FAIL + [test unit (computed): vw  circle(at left 50% bottom 70vw)] expected: FAIL + [test unit (computed): vw  circle(at left 50vw top 50%)] + expected: FAIL + + [test unit (computed): vw  circle(at left 50vw top 50vw)] + expected: FAIL + + [test unit (computed): vw  circle(at left 50vw bottom 70%)] + expected: FAIL + [test unit (computed): vw  circle(at left 50vw bottom 70vw)] expected: FAIL + [test unit (computed): vw  circle(at top 50% left 50vw)] + expected: FAIL + [test unit (computed): vw  circle(at top 50% right 80vw)] expected: FAIL + [test unit (computed): vw  circle(at top 50vw left 50%)] + expected: FAIL + + [test unit (computed): vw  circle(at top 50vw left 50vw)] + expected: FAIL + + [test unit (computed): vw  circle(at top 50vw right 80%)] + expected: FAIL + [test unit (computed): vw  circle(at top 50vw right 80vw)] expected: FAIL + [test unit (computed): vw  circle(at bottom 70% left 50vw)] + expected: FAIL + [test unit (computed): vw  circle(at bottom 70% right 80vw)] expected: FAIL [test unit (computed): vw  circle(at bottom 70vw left 50%)] expected: FAIL [test unit (computed): vw  circle(at bottom 70vw left 50vw)] expected: FAIL [test unit (computed): vw  circle(at bottom 70vw right 80%)] expected: FAIL [test unit (computed): vw  circle(at bottom 70vw right 80vw)] expected: FAIL + [test unit (computed): vw  circle(at right 80% top 50vw)] + expected: FAIL + [test unit (computed): vw  circle(at right 80% bottom 70vw)] expected: FAIL [test unit (computed): vw  circle(at right 80vw top 50%)] expected: FAIL [test unit (computed): vw  circle(at right 80vw top 50vw)] expected: FAIL [test unit (computed): vw  circle(at right 80vw bottom 70%)] expected: FAIL [test unit (computed): vw  circle(at right 80vw bottom 70vw)] expected: FAIL + [test unit (computed): vh  circle(at 50vh)] + expected: FAIL + + [test unit (computed): vh  circle(at 50% 50vh)] + expected: FAIL + + [test unit (computed): vh  circle(at 50vh 50%)] + expected: FAIL + + [test unit (computed): vh  circle(at 50vh 50vh)] + expected: FAIL + + [test unit (computed): vh  circle(at left 50vh)] + expected: FAIL + + [test unit (computed): vh  circle(at 50vh top)] + expected: FAIL + + [test unit (computed): vh  circle(at right 80vh)] + expected: FAIL + + [test unit (computed): vh  circle(at 70vh bottom)] + expected: FAIL + + [test unit (computed): vh  circle(at center 60vh)] + expected: FAIL + + [test unit (computed): vh  circle(at 60vh center)] + expected: FAIL + [test unit (computed): vh  circle(at center top 50vh)] expected: FAIL [test unit (computed): vh  circle(at center left 50vh)] expected: FAIL [test unit (computed): vh  circle(at center right 70vh)] expected: FAIL @@ 1326,58 +1836,118 @@ expected: FAIL [test unit (computed): vh  circle(at right 80vh bottom)] expected: FAIL [test unit (computed): vh  circle(at right 80vh top)] expected: FAIL + [test unit (computed): vh  circle(at left 50% top 50vh)] + expected: FAIL + [test unit (computed): vh  circle(at left 50% bottom 70vh)] expected: FAIL + [test unit (computed): vh  circle(at left 50vh top 50%)] + expected: FAIL + + [test unit (computed): vh  circle(at left 50vh top 50vh)] + expected: FAIL + + [test unit (computed): vh  circle(at left 50vh bottom 70%)] + expected: FAIL + [test unit (computed): vh  circle(at left 50vh bottom 70vh)] expected: FAIL + [test unit (computed): vh  circle(at top 50% left 50vh)] + expected: FAIL + [test unit (computed): vh  circle(at top 50% right 80vh)] expected: FAIL + [test unit (computed): vh  circle(at top 50vh left 50%)] + expected: FAIL + + [test unit (computed): vh  circle(at top 50vh left 50vh)] + expected: FAIL + + [test unit (computed): vh  circle(at top 50vh right 80%)] + expected: FAIL + [test unit (computed): vh  circle(at top 50vh right 80vh)] expected: FAIL + [test unit (computed): vh  circle(at bottom 70% left 50vh)] + expected: FAIL + [test unit (computed): vh  circle(at bottom 70% right 80vh)] expected: FAIL [test unit (computed): vh  circle(at bottom 70vh left 50%)] expected: FAIL [test unit (computed): vh  circle(at bottom 70vh left 50vh)] expected: FAIL [test unit (computed): vh  circle(at bottom 70vh right 80%)] expected: FAIL [test unit (computed): vh  circle(at bottom 70vh right 80vh)] expected: FAIL + [test unit (computed): vh  circle(at right 80% top 50vh)] + expected: FAIL + [test unit (computed): vh  circle(at right 80% bottom 70vh)] expected: FAIL [test unit (computed): vh  circle(at right 80vh top 50%)] expected: FAIL [test unit (computed): vh  circle(at right 80vh top 50vh)] expected: FAIL [test unit (computed): vh  circle(at right 80vh bottom 70%)] expected: FAIL [test unit (computed): vh  circle(at right 80vh bottom 70vh)] expected: FAIL + [test unit (computed): vmin  circle(at 50vmin)] + expected: FAIL + + [test unit (computed): vmin  circle(at 50% 50vmin)] + expected: FAIL + + [test unit (computed): vmin  circle(at 50vmin 50%)] + expected: FAIL + + [test unit (computed): vmin  circle(at 50vmin 50vmin)] + expected: FAIL + + [test unit (computed): vmin  circle(at left 50vmin)] + expected: FAIL + + [test unit (computed): vmin  circle(at 50vmin top)] + expected: FAIL + + [test unit (computed): vmin  circle(at right 80vmin)] + expected: FAIL + + [test unit (computed): vmin  circle(at 70vmin bottom)] + expected: FAIL + + [test unit (computed): vmin  circle(at center 60vmin)] + expected: FAIL + + [test unit (computed): vmin  circle(at 60vmin center)] + expected: FAIL + [test unit (computed): vmin  circle(at center top 50vmin)] expected: FAIL [test unit (computed): vmin  circle(at center left 50vmin)] expected: FAIL [test unit (computed): vmin  circle(at center right 70vmin)] expected: FAIL @@ 1440,58 +2010,118 @@ expected: FAIL [test unit (computed): vmin  circle(at right 80vmin bottom)] expected: FAIL [test unit (computed): vmin  circle(at right 80vmin top)] expected: FAIL + [test unit (computed): vmin  circle(at left 50% top 50vmin)] + expected: FAIL + [test unit (computed): vmin  circle(at left 50% bottom 70vmin)] expected: FAIL + [test unit (computed): vmin  circle(at left 50vmin top 50%)] + expected: FAIL + + [test unit (computed): vmin  circle(at left 50vmin top 50vmin)] + expected: FAIL + + [test unit (computed): vmin  circle(at left 50vmin bottom 70%)] + expected: FAIL + [test unit (computed): vmin  circle(at left 50vmin bottom 70vmin)] expected: FAIL + [test unit (computed): vmin  circle(at top 50% left 50vmin)] + expected: FAIL + [test unit (computed): vmin  circle(at top 50% right 80vmin)] expected: FAIL + [test unit (computed): vmin  circle(at top 50vmin left 50%)] + expected: FAIL + + [test unit (computed): vmin  circle(at top 50vmin left 50vmin)] + expected: FAIL + + [test unit (computed): vmin  circle(at top 50vmin right 80%)] + expected: FAIL + [test unit (computed): vmin  circle(at top 50vmin right 80vmin)] expected: FAIL + [test unit (computed): vmin  circle(at bottom 70% left 50vmin)] + expected: FAIL + [test unit (computed): vmin  circle(at bottom 70% right 80vmin)] expected: FAIL [test unit (computed): vmin  circle(at bottom 70vmin left 50%)] expected: FAIL [test unit (computed): vmin  circle(at bottom 70vmin left 50vmin)] expected: FAIL [test unit (computed): vmin  circle(at bottom 70vmin right 80%)] expected: FAIL [test unit (computed): vmin  circle(at bottom 70vmin right 80vmin)] expected: FAIL + [test unit (computed): vmin  circle(at right 80% top 50vmin)] + expected: FAIL + [test unit (computed): vmin  circle(at right 80% bottom 70vmin)] expected: FAIL [test unit (computed): vmin  circle(at right 80vmin top 50%)] expected: FAIL [test unit (computed): vmin  circle(at right 80vmin top 50vmin)] expected: FAIL [test unit (computed): vmin  circle(at right 80vmin bottom 70%)] expected: FAIL [test unit (computed): vmin  circle(at right 80vmin bottom 70vmin)] expected: FAIL + [test unit (computed): vmax  circle(at 50vmax)] + expected: FAIL + + [test unit (computed): vmax  circle(at 50% 50vmax)] + expected: FAIL + + [test unit (computed): vmax  circle(at 50vmax 50%)] + expected: FAIL + + [test unit (computed): vmax  circle(at 50vmax 50vmax)] + expected: FAIL + + [test unit (computed): vmax  circle(at left 50vmax)] + expected: FAIL + + [test unit (computed): vmax  circle(at 50vmax top)] + expected: FAIL + + [test unit (computed): vmax  circle(at right 80vmax)] + expected: FAIL + + [test unit (computed): vmax  circle(at 70vmax bottom)] + expected: FAIL + + [test unit (computed): vmax  circle(at center 60vmax)] + expected: FAIL + + [test unit (computed): vmax  circle(at 60vmax center)] + expected: FAIL + [test unit (computed): vmax  circle(at center top 50vmax)] expected: FAIL [test unit (computed): vmax  circle(at center left 50vmax)] expected: FAIL [test unit (computed): vmax  circle(at center right 70vmax)] expected: FAIL @@ 1554,43 +2184,73 @@ expected: FAIL [test unit (computed): vmax  circle(at right 80vmax bottom)] expected: FAIL [test unit (computed): vmax  circle(at right 80vmax top)] expected: FAIL + [test unit (computed): vmax  circle(at left 50% top 50vmax)] + expected: FAIL + [test unit (computed): vmax  circle(at left 50% bottom 70vmax)] expected: FAIL + [test unit (computed): vmax  circle(at left 50vmax top 50%)] + expected: FAIL + + [test unit (computed): vmax  circle(at left 50vmax top 50vmax)] + expected: FAIL + + [test unit (computed): vmax  circle(at left 50vmax bottom 70%)] + expected: FAIL + [test unit (computed): vmax  circle(at left 50vmax bottom 70vmax)] expected: FAIL + [test unit (computed): vmax  circle(at top 50% left 50vmax)] + expected: FAIL + [test unit (computed): vmax  circle(at top 50% right 80vmax)] expected: FAIL + [test unit (computed): vmax  circle(at top 50vmax left 50%)] + expected: FAIL + + [test unit (computed): vmax  circle(at top 50vmax left 50vmax)] + expected: FAIL + + [test unit (computed): vmax  circle(at top 50vmax right 80%)] + expected: FAIL + [test unit (computed): vmax  circle(at top 50vmax right 80vmax)] expected: FAIL + [test unit (computed): vmax  circle(at bottom 70% left 50vmax)] + expected: FAIL + [test unit (computed): vmax  circle(at bottom 70% right 80vmax)] expected: FAIL [test unit (computed): vmax  circle(at bottom 70vmax left 50%)] expected: FAIL [test unit (computed): vmax  circle(at bottom 70vmax left 50vmax)] expected: FAIL [test unit (computed): vmax  circle(at bottom 70vmax right 80%)] expected: FAIL [test unit (computed): vmax  circle(at bottom 70vmax right 80vmax)] expected: FAIL + [test unit (computed): vmax  circle(at right 80% top 50vmax)] + expected: FAIL + [test unit (computed): vmax  circle(at right 80% bottom 70vmax)] expected: FAIL [test unit (computed): vmax  circle(at right 80vmax top 50%)] expected: FAIL [test unit (computed): vmax  circle(at right 80vmax top 50vmax)] expected: FAIL
 a/testing/webplatform/meta/css/cssshapes/shapeoutside/values/shapeoutsidecircle009.html.ini +++ b/testing/webplatform/meta/css/cssshapes/shapeoutside/values/shapeoutsidecircle009.html.ini @@ 1,9 +1,66 @@ [shapeoutsidecircle009.html] + [circle(at +50px)  computed] + expected: FAIL + + [circle(at 50px)  computed] + expected: FAIL + + [circle(at +50%)  computed] + expected: FAIL + + [circle(at 50%)  computed] + expected: FAIL + + [circle(at left +50px)  computed] + expected: FAIL + + [circle(at left +50%)  computed] + expected: FAIL + + [circle(at right 50px)  computed] + expected: FAIL + + [circle(at right 50%)  computed] + expected: FAIL + + [circle(at +50px top)  computed] + expected: FAIL + + [circle(at +50% top)  computed] + expected: FAIL + + [circle(at 50px bottom)  computed] + expected: FAIL + + [circle(at 50% bottom)  computed] + expected: FAIL + + [circle(at +50px +50px)  computed] + expected: FAIL + + [circle(at +50% +50%)  computed] + expected: FAIL + + [circle(at 50px 50px)  computed] + expected: FAIL + + [circle(at +50px 50px)  computed] + expected: FAIL + + [circle(at 50px +50px)  computed] + expected: FAIL + + [circle(at +50% 50%)  computed] + expected: FAIL + + [circle(at 50% +50%)  computed] + expected: FAIL + [circle(at +50px)  inline] expected: FAIL [circle(at 50px)  inline] expected: FAIL [circle(at +50%)  inline] expected: FAIL
 a/testing/webplatform/meta/css/cssshapes/shapeoutside/values/shapeoutsidecircle011.html.ini +++ b/testing/webplatform/meta/css/cssshapes/shapeoutside/values/shapeoutsidecircle011.html.ini @@ 1,12 +1,33 @@ [shapeoutsidecircle011.html] [circle(at calc((12.5%*6 + 10in) / 4))  inline style] expected: FAIL + [circle(at calc(10in))  computed style] + expected: FAIL + + [circle(at calc(10in + 20px))  computed style] + expected: FAIL + + [circle(at calc(30%))  computed style] + expected: FAIL + + [circle(at calc(100%/4))  computed style] + expected: FAIL + + [circle(at calc(25%*3))  computed style] + expected: FAIL + + [circle(at calc(25%*3  10in))  computed style] + expected: FAIL + + [circle(at calc((12.5%*6 + 10in) / 4))  computed style] + expected: FAIL + [circle(at calc(10in))  inline style] expected: FAIL [circle(at calc(10in + 20px))  inline style] expected: FAIL [circle(at calc(30%))  inline style] expected: FAIL