     @array(styleprovider, glyphspec, @line_dash_name)
     @number(styleprovider, glyphspec, @line_dash_offset_name)
 
-    @do_stroke = @[@line_color_name].default?
+    @do_stroke = not _.isNull(@[@line_color_name].value)
 
   set: (ctx, obj) ->
     ctx.strokeStyle = @select(@line_color_name, obj)


class fill_properties extends properties
  constructor: (styleprovider, glyphspec, prefix="") ->
    @fill_name       = "#{ prefix }fill_color"
    @fill_alpha_name = "#{ prefix }fill_alpha"

    @color(styleprovider, glyphspec, @fill_name)
    @number(styleprovider, glyphspec, @fill_alpha_name)

    @do_fill = @[@fill_name].default?

  set: (ctx, obj) ->
    ctx.fillStyle   = @select(@fill_name,       obj)
    ctx.globalAlpha = @select(@fill_alpha_name, obj)




    # if the attribute is not on this property object at all, log a bad request
    if not (attrname of @)
      console.log("requested vector selection of unknown property '#{ attrname }' on objects")
      return

    if @[attrname].typed?
      result = new Float32Array(objs.length)
    else
      result = new Array(objs.length)
