Browse Source

kernel: Extract arraySet into kernel-goodies.

Herby Vojčík 4 years ago
parent
commit
50ec678ad7
3 changed files with 25 additions and 29 deletions
  1. 3 23
      lang/base/kernel-fundamentals.js
  2. 18 0
      lang/base/kernel-goodies.js
  3. 4 6
      lang/base/kernel-language.js

+ 3 - 23
lang/base/kernel-fundamentals.js

@@ -4,6 +4,8 @@ define(['./kernel-goodies'], function ($goodies) {
     "use strict";
 
     var inherits = $goodies.inherits;
+    var addElement = $goodies.addElement;
+    var removeElement = $goodies.removeElement;
 
     function SelectorsBrik (brikz, st) {
         var selectorSet = Object.create(null);
@@ -30,24 +32,6 @@ define(['./kernel-goodies'], function ($goodies) {
         };
     }
 
-    function ArraySetBrik (brikz, st) {
-        this.addElement = function (array, el) {
-            if (typeof el === 'undefined') {
-                return;
-            }
-            if (array.indexOf(el) === -1) {
-                array.push(el);
-            }
-        };
-
-        this.removeElement = function (array, el) {
-            var i = array.indexOf(el);
-            if (i !== -1) {
-                array.splice(i, 1);
-            }
-        };
-    }
-
     function FundamentalsFactory (globals, emit) {
         var specialConstructors = Object.create(null);
 
@@ -81,12 +65,9 @@ define(['./kernel-goodies'], function ($goodies) {
             this.Object = SmalltalkObject;
         }
 
-        BehaviorsBrik.deps = ["root", "arraySet"];
+        BehaviorsBrik.deps = ["root"];
 
         function BehaviorsBrik (brikz, st) {
-            var addElement = brikz.arraySet.addElement;
-            var removeElement = brikz.arraySet.removeElement;
-
             /* Smalltalk classes and traits */
 
             var traitsOrClasses = [];
@@ -250,7 +231,6 @@ define(['./kernel-goodies'], function ($goodies) {
             brikz.root = RootBrik;
             brikz.nil = NilBrik;
             brikz.event = EventBrik;
-            brikz.arraySet = ArraySetBrik;
             brikz.selectors = SelectorsBrik;
             brikz.packages = PackagesBrik;
             brikz.behaviors = BehaviorsBrik;

+ 18 - 0
lang/base/kernel-goodies.js

@@ -78,7 +78,25 @@ define(function () {
             .replace(/_at/g, '@');
     }
 
+    function addElement (array, el) {
+        if (typeof el === 'undefined') {
+            return;
+        }
+        if (array.indexOf(el) === -1) {
+            array.push(el);
+        }
+    }
+
+    function removeElement (array, el) {
+        var i = array.indexOf(el);
+        if (i !== -1) {
+            array.splice(i, 1);
+        }
+    }
+
     return {
+        removeElement: removeElement,
+        addElement: addElement,
         js2st: js2st,
         st2js: st2js,
         installJSMethod: installJSMethod,

+ 4 - 6
lang/base/kernel-language.js

@@ -5,13 +5,13 @@ define(['./kernel-goodies'], function ($goodies) {
 
     var inherits = $goodies.inherits;
     var defineMethod = $goodies.defineMethod;
+    var addElement = $goodies.addElement;
+    var removeElement = $goodies.removeElement;
 
-    MethodCompositionBrik.deps = ["methods", "arraySet"];
+    MethodCompositionBrik.deps = ["methods"];
 
     function MethodCompositionBrik (brikz, st) {
         var updateMethod = brikz.methods.updateMethod;
-        var addElement = brikz.arraySet.addElement;
-        var removeElement = brikz.arraySet.removeElement;
 
         function aliased (selector, method) {
             var result = st.method(method, method.instantiateFn);
@@ -192,7 +192,7 @@ define(['./kernel-goodies'], function ($goodies) {
             };
         }
 
-        ClassesBrik.deps = ["root", "event", "behaviors", "methods", "arraySet", "nil"];
+        ClassesBrik.deps = ["root", "event", "behaviors", "methods", "nil"];
 
         function ClassesBrik (brikz, st) {
             var SmalltalkRoot = brikz.root.Root;
@@ -200,8 +200,6 @@ define(['./kernel-goodies'], function ($goodies) {
             var buildTraitOrClass = brikz.behaviors.buildTraitOrClass;
             var setupMethods = brikz.methods.setupMethods;
             var removeTraitOrClass = brikz.behaviors.removeTraitOrClass;
-            var addElement = brikz.arraySet.addElement;
-            var removeElement = brikz.arraySet.removeElement;
             var declareEvent = brikz.event.declareEvent;
             var nilAsReceiver = brikz.nil.nilAsReceiver;