   _full_path: (ctx) ->
     if @do_stroke
       for i in [0..@sx.length-1]
-        if isNaN(@sx[i] + @sy[i] + @angle[i] + @slength[i])
+        if isNaN(@sx[i] + @sy[i] + @angle[i] + @length[i])
           continue
 
         ctx.translate(@sx[i], @sy[i])


        ctx.beginPath()
        ctx.moveTo(0, 0)
        ctx.lineTo(@slength[i], 0) # TODO handle @length in data units?

        @glyph_props.line_properties.set(ctx, @data[i])
        ctx.stroke()

      @glyph_props.line_properties.set(ctx, @glyph_props)
      ctx.beginPath()
      for i in [0..@sx.length-1]
        if isNaN(@sx[i] + @sy[i] + @angle[i] + @length[i])
          continue

        ctx.translate(@sx[i], @sy[i])
        ctx.rotate(@angle[i])
        ctx.moveTo(0,  0)
        ctx.lineTo(@length[i], 0) # TODO handle @length in data units?
        ctx.rotate(-@angle[i])
        ctx.translate(-@sx[i], -@sy[i])

