Browse Source

don't use __forin__/__has_next__ for AS3 output

Nicolas Cannasse 13 years ago
parent
commit
14ff516d9b
1 changed files with 11 additions and 0 deletions
  1. 11 0
      std/flash/_std/Reflect.hx

+ 11 - 0
std/flash/_std/Reflect.hx

@@ -52,6 +52,16 @@
 
 
 	public static function fields( o : Dynamic ) : Array<String> untyped {
 	public static function fields( o : Dynamic ) : Array<String> untyped {
 		if( o == null ) return new Array();
 		if( o == null ) return new Array();
+		#if as3
+		var a : Array<String> = __keys__(o);
+		var i = 0;
+		while( i < a.length ){
+			if( !o.hasOwnProperty(a[i]) )
+				a.splice(i,1);
+			else
+				++i;
+		}
+		#else
 		var i = 0;
 		var i = 0;
 		var a = [];
 		var a = [];
 		while( untyped __has_next__(o,i) ) {
 		while( untyped __has_next__(o,i) ) {
@@ -59,6 +69,7 @@
 			if( o.hasOwnProperty(prop) )
 			if( o.hasOwnProperty(prop) )
 				a.push(prop);
 				a.push(prop);
 		}
 		}
+		#end
 		return a;
 		return a;
 	}
 	}