Browse Source

kernel: Flatten class/trait added and removed.

Herby Vojčík 4 years ago
parent
commit
7323857cfc
3 changed files with 13 additions and 28 deletions
  1. 6 0
      lang/base/kernel-fundamentals.js
  2. 2 14
      lang/base/kernel-language.js
  3. 5 14
      lang/base/kernel-runtime.js

+ 6 - 0
lang/base/kernel-fundamentals.js

@@ -80,14 +80,20 @@ define(['./junk-drawer'], function ($goodies) {
                 }
             };
 
+            declareEvent("behavioralAdded");
+
             function addTraitOrClass (traitOrClass) {
                 globals[traitOrClass.name] = traitOrClass;
                 addElement(traitsOrClasses, traitOrClass);
                 traitOrClass.added();
+                emit.behavioralAdded(traitOrClass);
                 return traitOrClass;
             }
 
+            declareEvent("behavioralRemoved");
+
             function removeTraitOrClass (traitOrClass) {
+                emit.behavioralRemoved(traitOrClass);
                 traitOrClass.removed();
                 removeElement(traitsOrClasses, traitOrClass);
                 delete globals[traitOrClass.name];

+ 2 - 14
lang/base/kernel-language.js

@@ -154,16 +154,6 @@ define(['./junk-drawer'], function ($goodies) {
                 return 'Smalltalk Trait ' + this.name;
             };
 
-            declareEvent("traitAdded");
-            SmalltalkTrait.prototype.added = function () {
-                emit.traitAdded(this);
-            };
-
-            declareEvent("traitRemoved");
-            SmalltalkTrait.prototype.removed = function () {
-                emit.traitRemoved(this);
-            };
-
             declareEvent("traitMethodAdded");
             SmalltalkTrait.prototype.methodAdded = function (method) {
                 var self = this;
@@ -243,15 +233,13 @@ define(['./junk-drawer'], function ($goodies) {
                 return 'Smalltalk Metaclass ' + this.instanceClass.name;
             };
 
-            declareEvent("classAdded");
+            declareEvent("classCreated");
             SmalltalkClass.prototype.added = function () {
                 registerToSuperclass(this);
-                emit.classAdded(this);
+                emit.classCreated(this);
             };
 
-            declareEvent("classRemoved");
             SmalltalkClass.prototype.removed = function () {
-                emit.classRemoved(this);
                 unregisterFromSuperclass(this);
             };
 

+ 5 - 14
lang/base/kernel-runtime.js

@@ -107,27 +107,18 @@ define(['./junk-drawer'], function ($goodies) {
             });
 
             function installStHooks () {
-                emit.classAdded = function (klass) {
-                    initClassAndMetaclass(klass);
-                    klass._enterOrganization();
+                emit.behavioralAdded = function (traitOrClass) {
+                    traitOrClass._enterOrganization();
                 };
 
-                emit.traitAdded = function (trait) {
-                    trait._enterOrganization();
-                };
-
-                emit.classRemoved = function (klass) {
-                    klass._leaveOrganization();
-                };
-
-                emit.traitRemoved = function (trait) {
-                    trait._leaveOrganization();
+                emit.behavioralRemoved = function (traitOrClass) {
+                    traitOrClass._leaveOrganization();
                 };
             }
 
             this.installStHooks = installStHooks;
 
-            emit.classAdded = initClassAndMetaclass;
+            emit.classCreated = initClassAndMetaclass;
 
             emit.slotsChanged = initClassSlots;