The spec says: "If the anticlockwise argument is omitted or false and endAngle-startAngle is equal to or greater than 2π, or, if the anticlockwise argument is true and startAngle-endAngle is equal to or greater than 2π, then the arc is the whole circumference of this circle." [http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-arc] We don't currently check for this case. The test fast/canvas/canvas-largedraws.html appears to somewhat exercise this case.
Created attachment 90359 [details] Patch
Comment on attachment 90359 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=90359&action=review > Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:856 > + if (anticlockwise && sa - ea >= 2.0f * piFloat) { The coding style guidelines says that you should just write this as 2 * piFloat. > Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:859 > + m_path.addArc(FloatPoint(x, y), r, sa, sa - piFloat, anticlockwise); > + m_path.addArc(FloatPoint(x, y), r, sa - piFloat, sa, anticlockwise); This can be done as a single 2π arc.
Created attachment 90402 [details] Patch
Created attachment 90411 [details] Patch
Comment on attachment 90411 [details] Patch r=me
http://trac.webkit.org/changeset/84512