diff --git a/content/canvas/src/nsCanvasRenderingContext2D.cpp b/content/canvas/src/nsCanvasRenderingContext2D.cpp index edbfa93f7d0..a651ee0b610 100644 --- a/content/canvas/src/nsCanvasRenderingContext2D.cpp +++ b/content/canvas/src/nsCanvasRenderingContext2D.cpp @@ -3168,8 +3168,8 @@ nsCanvasRenderingContext2D::GetLineJoin(nsAString& joinstyle) NS_IMETHODIMP nsCanvasRenderingContext2D::SetMiterLimit(float miter) { - if (!FloatValidate(miter)) - return NS_ERROR_DOM_SYNTAX_ERR; + if (!FloatValidate(miter) || miter <= 0.0) + return NS_OK; mThebes->SetMiterLimit(miter); return NS_OK; diff --git a/content/canvas/test/test_canvas.html b/content/canvas/test/test_canvas.html index babcd7dc95a..0e055a1a03c 100644 --- a/content/canvas/test/test_canvas.html +++ b/content/canvas/test/test_canvas.html @@ -9829,28 +9829,28 @@ ok(ctx.miterLimit === 1.5, "ctx.miterLimit === 1.5"); ctx.miterLimit = 1.5; ctx.miterLimit = 0; -todo(ctx.miterLimit === 1.5, "ctx.miterLimit === 1.5"); +ok(ctx.miterLimit === 1.5, "ctx.miterLimit === 1.5"); ctx.miterLimit = 1.5; ctx.miterLimit = -1; -todo(ctx.miterLimit === 1.5, "ctx.miterLimit === 1.5"); +ok(ctx.miterLimit === 1.5, "ctx.miterLimit === 1.5"); ctx.miterLimit = 1.5; ctx.miterLimit = Infinity; -todo(ctx.miterLimit === 1.5, "ctx.miterLimit === 1.5"); +ok(ctx.miterLimit === 1.5, "ctx.miterLimit === 1.5"); ctx.miterLimit = 1.5; ctx.miterLimit = -Infinity; -todo(ctx.miterLimit === 1.5, "ctx.miterLimit === 1.5"); +ok(ctx.miterLimit === 1.5, "ctx.miterLimit === 1.5"); ctx.miterLimit = 1.5; ctx.miterLimit = NaN; -todo(ctx.miterLimit === 1.5, "ctx.miterLimit === 1.5"); +ok(ctx.miterLimit === 1.5, "ctx.miterLimit === 1.5"); } catch (e) { _thrown_outer = true; } -todo(!_thrown_outer, 'should not throw exception'); +ok(!_thrown_outer, 'should not throw exception'); }