From 706fe3688d2c591ec9ad12067b45e23a1f42c87a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 9 Dec 2023 03:31:46 +0100 Subject: [PATCH] Tests --- src/tests.ts | 7 +++++-- src/util/class.ts | 10 +++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) 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,