瀏覽代碼

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

Simon Krajewski 9 年之前
父節點
當前提交
4c6484ef32
共有 2 個文件被更改,包括 10 次插入0 次删除
  1. 1 0
      std/python/_std/Reflect.hx
  2. 9 0
      tests/unit/src/unit/issues/Issue5016.hx

+ 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'));
+	}
+}