Ver código fonte

[python] escape keywords in Reflect.deleteField (closes #5016)

Simon Krajewski 9 anos atrás
pai
commit
4c6484ef32

+ 1 - 0
std/python/_std/Reflect.hx

@@ -114,6 +114,7 @@ class Reflect {
 	}
 
 	public static function deleteField( o : Dynamic, field : String ) : Bool {
+		field = handleKeywords(field);
 		if( !hasField(o,field) ) return false;
 		Syntax.callField(o, "__delattr__", field);
 		return true;

+ 9 - 0
tests/unit/src/unit/issues/Issue5016.hx

@@ -0,0 +1,9 @@
+package unit.issues;
+
+class Issue5016 extends Test {
+	function test() {
+		var obj = {abc:null, def:1}
+		Reflect.deleteField(obj, 'def');
+		f(Reflect.hasField(obj, 'def'));
+	}
+}