package lib; class ObjMerge { public static function merge(obj1:T, obj2:T):T { if (obj1 == null) { return obj2; } if (obj2 == null) { return obj1; } var rtn:T = Reflect.copy(obj1); var fields = Reflect.fields(obj2); for (field in fields) { if (Reflect.getProperty(obj1, field) == null) { Reflect.setProperty(rtn, field, Reflect.getProperty(obj2, field)); } } return (rtn : T); } }