Browse Source

Lua : Fix map iterators

These were using an optimized form for javascript that doesn't work in
lua.
Justin Donaldson 10 years ago
parent
commit
a84478bdda
2 changed files with 8 additions and 8 deletions
  1. 4 4
      std/lua/_std/haxe/ds/IntMap.hx
  2. 4 4
      std/lua/_std/haxe/ds/StringMap.hx

+ 4 - 4
std/lua/_std/haxe/ds/IntMap.hx

@@ -63,11 +63,11 @@ class IntMap<T> implements haxe.Constraints.IMap<Int,T> {
 	}
 
 	public function iterator() : Iterator<T> {
+		var ref = h;
+		var it = keys();
 		return untyped {
-			ref : h,
-			it : keys(),
-			hasNext : function() { return __this__.it.hasNext(); },
-			next : function() { var i = __this__.it.next(); return __this__.ref[i]; }
+			hasNext : function() { return keys.hasNext(); },
+			next : function() { var i = keys.next(); return h[i]; }
 		};
 	}
 

+ 4 - 4
std/lua/_std/haxe/ds/StringMap.hx

@@ -63,11 +63,11 @@ class StringMap<T> implements haxe.Constraints.IMap<String,T> {
 	}
 
 	public function iterator() : Iterator<T> {
+		var ref = h;
+		var it = keys();
 		return untyped {
-			ref : h,
-			it : keys(),
-			hasNext : function() { return __this__.it.hasNext(); },
-			next : function() { var i = __this__.it.next(); return __this__.ref[i]; }
+			hasNext : function() { return keys.hasNext(); },
+			next : function() { var i = keys.next(); return h[i]; }
 		};
 	}