diff --git a/src/tests.ts b/src/tests.ts index a27d87d..0e88cba 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -27,8 +27,11 @@ class User extends mixTraits( } } +console.log(Permissible.constructor()) +// console.log(Object.getOwnPropertyNames(User.prototype)) + const user1 = new User(BigInt(1)) const user2 = new User(BigInt(2)) -console.log(user1.equals(user2)) -console.log(user1.permissions) +// console.log(user1.equals(user2)) +// console.log(user1.permissions) diff --git a/src/util/class.ts b/src/util/class.ts index 671ff45..aecd83d 100644 --- a/src/util/class.ts +++ b/src/util/class.ts @@ -21,7 +21,10 @@ export function copyClassProperties( to: AbstractClass, ) { Object.getOwnPropertyNames(from).forEach(name => { - if (name === "length" + // console.log(from, to, name, Object.getOwnPropertyDescriptor(from, name)) + + if (name === "name" + || name === "length" || name === "prototype" ) return @@ -34,6 +37,11 @@ export function copyClassProperties( }) Object.getOwnPropertyNames(from.prototype).forEach(name => { + // console.log(from, to, name, Object.getOwnPropertyDescriptor(from, name)) + + if (name === "constructor") + return + Object.defineProperty( to.prototype, name,