Bläddra i källkod

[lua] simplify Reflect.fields

Justin Donaldson 9 år sedan
förälder
incheckning
d1339e895b
1 ändrade filer med 5 tillägg och 8 borttagningar
  1. 5 8
      std/lua/_std/Reflect.hx

+ 5 - 8
std/lua/_std/Reflect.hx

@@ -90,17 +90,14 @@ import lua.Boot;
 	}
 
 	public static function fields( o : Dynamic ) : Array<String> {
+		var ret = new Array<String>();
+		var fields = lua.Boot.hiddenFields;
 		if (untyped o.__fields__ != null) {
-			return lua.PairTools.pairsFold(o.__fields__, function(a,b,c:Array<String>){
-				if (Boot.hiddenFields.indexOf(a) == -1) c.push(a);
-				return c;
-			}, []);
+			untyped __lua__("for k,_ in pairs(o.__fields__) do if fields:indexOf(k) == -1 then ret:push(k) end end");
 		} else {
-			return lua.PairTools.pairsFold(o, function(a,b,c:Array<String>){
-			if (Boot.hiddenFields.indexOf(a) == -1) c.push(cast a);
-			return c;
-			}, []);
+			untyped __lua__("for k,_ in pairs(o) do if fields:indexOf(k) == -1 then ret:push(k) end end");
 		}
+		return ret;
 	}
 
 	public static function isFunction( f : Dynamic ) : Bool {