 
   map_to_screen : (x, x_units, y, y_units, units) ->
     if x_units == 'screen'
-      sx = x[..]
-      sy = y[..]
+      if _.isArray(x)
+        sx = x[..]
+      else
+        sx = new Float32Array(x.length)
+        sx.set(x)
+      if _.isArray(y)
+        sy = y[..]
+      else
+        sy = new Float32Array(y.length)
+        sy.set(y)
     else
       [sx, sy] = @mapper.v_map_to_target(x, y)
 

    super()
    window.render_count +=1
    #console.log("render #{@plotnum}", window.render_count)
    
    #newtime = new Date()
    # if @last_render
    #   console.log(newtime - @last_render)

    plot10.update_range({sdx:1, sdy:2, xr:{end:20, start:0}, yr:{start:-3, end:30}})), 600)
  end_time = new Date()
  console.log(end_time - start_time, "ms")

