- From: Sam Weinig <weinig@apple.com>
- Date: Tue, 7 Sep 2010 22:32:36 -0700
In 4.8.11.1 the spec does state: "Except where otherwise specified, for the 2D context interface, any method call with a numeric argument whose value is infinite or a NaN value must be ignored." -Sam On Sep 7, 2010, at 9:41 PM, Boris Zbarsky wrote: > Consider this testcase: > > <!doctype html> > <html> > <body> > <canvas id="c" width="200" height="200"></canvas> > <script> > try { > var c = document.getElementById("c"), > t = c.getContext("2d"); > t.moveTo(100, 100); > t.lineTo(NaN, NaN); > t.lineTo(50, 25); > t.stroke(); > } catch (e) {alert(e); } > </script> > </body> > </html> > > Behavior in the spec seems to be undefined (in particular, no mention is made as to what the canvas API functions are supposed to do if non-finite values are passed in). Behavior in browsers is: > > Presto: Throws NOT_SUPPORTED_ERR on that lineTo(NaN, NaN) call. > Gecko: Throws DOM_SYNTAX_ERR on that lineTo(NaN, NaN) call. > Webkit: Silently ignores the lineTo(NaN, NaN) call, and then > draws a line from (100,100) to (50, 25). > > Seems like the spec needs to define this. > > -Boris > > P.S. This isn't a hypothetical issue; this came up in a page that was trying to graph things using canvas and ending up with divide-by-0 all over the place. It "worked" in webkit (though not drawing the right thing, so much). It failed to draw anything in Presto or Gecko.
Received on Tuesday, 7 September 2010 22:32:36 UTC