 
     source_v_select: (attrname, glyph_props, datasource) ->
       # if the attribute is not on this property object at all, log a bad request
-      if not (attrname of glpyh_props)
+      if not (attrname of glyph_props)
         console.log("requested vector selection of unknown property '#{ attrname }' on objects")
         return
 
       prop = glyph_props[attrname]
-      # if prop.typed?
-      #   result = new Float64Array(objs.length)
-
       # if the attribute specifies a field, and the field exists on
       # the column source, return the column from the column source
-
-
       if prop.field? and (prop.field of datasource.get('data'))
         console.log("source_v_select")
-        return source.getcolumn(prop.field)
-      else
-        result = new Array(objs.length)
-      '''
-      objs = []
-      for i in [0..objs.length-1]
-        obj = objs[i]
-
-
+        return datasource.getcolumn(prop.field)
+      else
         # If the user gave an explicit value, that should always be returned
-        else if glyphprops[attrname].value?
-          result[i] = glyphprops[attrname].value
-
-        # otherwise, if the attribute exists on the object, return that value
-        else if obj[attrname]?
-          result[i] = obj[attrname]
+        debugger 
+        if glyph_props[attrname].value?
+          default_value = glyph_props[attrname].value
+
+        # otherwise, if the attribute exists on the object, return that value.
+        # (This is a convenience case for when the object passed in has a member
+        # that has the same name as the glyphspec name, e.g. an actual field
+        # named "x" or "radius".)
+        if (attrname of datasource.get('data'))
+          return datasource.getcolumn(attrname)
 
         # finally, check for a default value on this property object that could be returned
-        else if glyphprops[attrname].default?
-          result[i] = glyphprops[attrname].default
-
-        # failing that, just log a problem
-        else
-          console.log "vector selection for attribute '#{ attrname }' failed on object: #{ obj }"
-          return
-
-      return result
-      '''
+        if glyph_props[attrname].default?
+          default_value = glyph_props[attrname].default
+
+        return (default_value for i in datasource.get_length())
+
 
     _render: (plot_view, have_new_mapper_state=true) ->
       [@sx, @sy] = @plot_view.map_to_screen(@x, @glyph_props.x.units, @y, @glyph_props.y.units)

        else
          @_full_path(ctx)
      ctx.restore()

    _fast_path: (ctx, glyph_props, use_selection) ->
      if not glyph_props

        ctx.arc(@sx[i], @sy[i], @radius[i], 0, 2*Math.PI, false)

        if glyph_props.fill_properties.do_fill
          #FIXME: vectorize this later
          glyph_props.fill_properties.set(ctx, @data2[i])
          ctx.fill()

        if glyph_props.line_properties.do_stroke
          #FIXME: vectorize this later
          glyph_props.line_properties.set(ctx, @data2[i])
          ctx.stroke()

    select: (xscreenbounds, yscreenbounds) ->
