what the heck is

open[0] = {x:start.x,y:start.y,path:"",len:estlength};

I dont understand this part

The rest looks normal enough