That makes sense, but the text for closePath() talks about "the last subpath", which I guess is a bit unclear.
On Mon, Nov 16, 2015 at 12:30 PM, Rik Cabanier <caban...@gmail.com> wrote: > > > On Mon, Nov 16, 2015 at 9:02 AM, Justin Novosad <ju...@google.com> wrote: > >> Hi All, >> >> The text in the spec: >> >> <snip> >> >> The closePath() method must do nothing if the object's path has no >> subpaths. Otherwise, it must mark the last subpath as closed, create a new >> subpath whose first point is the same as the previous subpath's first >> point, and finally add this new subpath to the path. >> >> Note: If the last subpath had more than one point in its list of points, >> then this is equivalent to adding a straight line connecting the last >> point >> back to the first point, thus "closing" the shape, and then repeating the >> last (possibly implied) moveTo() call. >> >> </snip> >> >> Problematic use case: >> >> ctx.moveTo(9.8255,71.1829); >> ctx.lineTo(103,25); >> ctx.lineTo(118,25); >> ctx.moveTo(9.8255,71.1829); >> ctx.closePath(); >> ctx.stroke(); >> >> Should this draw a closed triangle or two connected line segments? >> According to the "Note" (or at least my interpretation of it), this should >> draw a closed triangle. But it appears that this is not what many browsers >> have implemented. Chrome recently became compliant (or what I think is >> compliant), and the change in behavior was reported as a regression. >> >> Thoughts? >> > > moveTo creates a new subpath. This means the closePath is going to do > nothing because the subpath is empty. > So according to the spec, this should create 2 connected lines. >