def array
      @entries=[]
      @stack=[]
      if @leaf
        recurse(@map,0)
        return @entries
      end
      visit(@map,0)
      @entries.map {|stack|
        m={}
        @keys.each_with_index {|k,i|
          v=stack[i]
          m[k.name]=k.value ? k.value.js_call(self,v) : v
        }
        m
      }
    end
def array
      @entries=[]
      @stack=[]
      if @leaf
        recurse(@map,0)
        return @entries
      end
      visit(@map,0)
      @entries.map {|stack|
        m={}
        @keys.each_with_index {|k,i|
          v=stack[i]
          m[k.name]=k.value ? k.value.js_call(self,v) : v
        }
        m
      }
    end
Returns the flattened array. Each entry in the array is an object; each
 object has attributes corresponding to this flatten operator's keys.

 @returns an array of elements from the flattened map.