diff --git a/loader/extend.js b/loader/extend.js
index <HASH>..<HASH> 100644
--- a/loader/extend.js
+++ b/loader/extend.js
@@ -30,7 +30,16 @@ const ExtendLoader = {
       if(!ret[type]){
         ret[type] = {};
       }
-      ret[type] = Object.assign(ret[type], ext);
+      for(let name in ext){
+         let descriptor = Object.getOwnPropertyDescriptor(ext, name);
+         if(descriptor.value){
+           ret[type][name] = descriptor.value;
+         }else if(descriptor.get){
+           ret[type].__defineGetter__(name, descriptor.get);
+         }else if(descriptor.set){
+           ret[type].__defineSetter__(name, descriptor.set);
+         }
+      }
     }
     //system extend
     allowExtends.forEach(type => {
Support getter/setter for load extend