diff --git a/packages/imba/src/imba/runtime.mjs b/packages/imba/src/imba/runtime.mjs index 3435137fd..f2c503438 100644 --- a/packages/imba/src/imba/runtime.mjs +++ b/packages/imba/src/imba/runtime.mjs @@ -179,6 +179,9 @@ export function augment$(klass,mixin){ Object.defineProperties(klass.prototype,descs); // TODO Should also run a method / trigger a hook try { meta.top.version++; } catch(e) { } + + if(mixin?.mixed instanceof Function) mixin.mixed(klass) + return klass; }; diff --git a/packages/imba/test/apps/mixins/isa.imba b/packages/imba/test/apps/mixins/isa.imba index 4485f1d31..8bd5117d6 100644 --- a/packages/imba/test/apps/mixins/isa.imba +++ b/packages/imba/test/apps/mixins/isa.imba @@ -1,9 +1,11 @@ import 'imba/spec' # test do -let val = 0 +let val # Should this only be run once? class Base + static def mixed + val = 'mixed' class Action < Base @@ -19,3 +21,4 @@ test do ok (new Widget) !isa Action ok (new Widget) isa Base ok (new User) isa Base + ok val, 'mixed'