Browse Source

Remove BehaviorBody.

Herbert Vojčík 7 years ago
parent
commit
5c6a47930b
5 changed files with 758 additions and 713 deletions
  1. 8 0
      CHANGELOG
  2. 687 633
      src/Kernel-Classes.js
  3. 59 69
      src/Kernel-Classes.st
  4. 0 7
      support/kernel-fundamentals.js
  5. 4 4
      support/kernel-language.js

+ 8 - 0
CHANGELOG

@@ -1,3 +1,11 @@
+?? March 2017 - Release 0.19.0
+===================================
+
+* Removed BehaviorBody in favour of traits TBehaviorDefaults and TBehaviorProvider.
+
+Commits: https://lolg.it/amber/amber/commits/0.19.0.
+
+
 22 February 2017 - Release 0.18.3
 ===================================
 

File diff suppressed because it is too large
+ 687 - 633
src/Kernel-Classes.js


+ 59 - 69
src/Kernel-Classes.st

@@ -1,15 +1,5 @@
 Smalltalk createPackage: 'Kernel-Classes'!
-Object subclass: #BehaviorBody
-	instanceVariableNames: ''
-	package: 'Kernel-Classes'!
-!BehaviorBody commentStamp!
-I am the superclass of all behaviors.
-
-My instances hold the method dictionary.
-
-I also provides methods for compiling methods and examining the method dictionary.!
-
-BehaviorBody subclass: #Behavior
+Object subclass: #Behavior
 	instanceVariableNames: ''
 	package: 'Kernel-Classes'!
 !Behavior commentStamp!
@@ -322,64 +312,6 @@ isMetaclass
 	^ true
 ! !
 
-BehaviorBody subclass: #Trait
-	instanceVariableNames: ''
-	package: 'Kernel-Classes'!
-
-!Trait methodsFor: 'accessing'!
-
-classTag
-	^ 'trait'
-!
-
-definition
-	^ String streamContents: [ :stream | stream
-		write: 'Trait named: '; printSymbol: self name; lf;
-		write: (self traitCompositionDefinition ifNotEmpty: [ :tcd | { String tab. 'uses: '. tcd. String lf }]);
-		tab; write: 'package: '; print: self category ]
-!
-
-theMetaClass
-	^ nil
-!
-
-traitUsers
-	^ (self basicAt: 'traitUsers') copy
-! !
-
-!Trait methodsFor: 'composition'!
-
-- anArray
-	^ self asTraitTransformation - anArray
-!
-
-@ anArrayOfAssociations
-	^ self asTraitTransformation @ anArrayOfAssociations
-! !
-
-!Trait methodsFor: 'converting'!
-
-asTraitComposition
-	^ self asTraitTransformation asTraitComposition
-!
-
-asTraitTransformation
-	^ TraitTransformation on: self
-! !
-
-!Trait class methodsFor: 'instance creation'!
-
-named: aString package: anotherString
-	^ ClassBuilder new addTraitNamed: aString package: anotherString
-!
-
-named: aString uses: aTraitCompositionDescription package: anotherString
-	| trait |
-	trait := self named: aString package: anotherString.
-	trait setTraitComposition: aTraitCompositionDescription asTraitComposition.
-	^ trait
-! !
-
 Object subclass: #ClassBuilder
 	instanceVariableNames: ''
 	package: 'Kernel-Classes'!
@@ -993,6 +925,64 @@ asJavaScriptSource
 	^ '$globals.', self name
 ! !
 
+Object subclass: #Trait
+	instanceVariableNames: ''
+	package: 'Kernel-Classes'!
+
+!Trait methodsFor: 'accessing'!
+
+classTag
+	^ 'trait'
+!
+
+definition
+	^ String streamContents: [ :stream | stream
+		write: 'Trait named: '; printSymbol: self name; lf;
+		write: (self traitCompositionDefinition ifNotEmpty: [ :tcd | { String tab. 'uses: '. tcd. String lf }]);
+		tab; write: 'package: '; print: self category ]
+!
+
+theMetaClass
+	^ nil
+!
+
+traitUsers
+	^ (self basicAt: 'traitUsers') copy
+! !
+
+!Trait methodsFor: 'composition'!
+
+- anArray
+	^ self asTraitTransformation - anArray
+!
+
+@ anArrayOfAssociations
+	^ self asTraitTransformation @ anArrayOfAssociations
+! !
+
+!Trait methodsFor: 'converting'!
+
+asTraitComposition
+	^ self asTraitTransformation asTraitComposition
+!
+
+asTraitTransformation
+	^ TraitTransformation on: self
+! !
+
+!Trait class methodsFor: 'instance creation'!
+
+named: aString package: anotherString
+	^ ClassBuilder new addTraitNamed: aString package: anotherString
+!
+
+named: aString uses: aTraitCompositionDescription package: anotherString
+	| trait |
+	trait := self named: aString package: anotherString.
+	trait setTraitComposition: aTraitCompositionDescription asTraitComposition.
+	^ trait
+! !
+
 Object subclass: #TraitTransformation
 	instanceVariableNames: 'trait aliases exclusions'
 	package: 'Kernel-Classes'!

+ 0 - 7
support/kernel-fundamentals.js

@@ -200,13 +200,6 @@ define(['./compatibility'], function () {
         var addElement = brikz.arraySet.addElement;
         var removeElement = brikz.arraySet.removeElement;
 
-        function SmalltalkBehaviorBody () {
-        }
-
-        coreFns.BehaviorBody = inherits(SmalltalkBehaviorBody, SmalltalkObject);
-
-        this.BehaviorBody = SmalltalkBehaviorBody;
-
         /* Smalltalk classes */
 
         var classes = [];

+ 4 - 4
support/kernel-language.js

@@ -62,7 +62,7 @@ define(['./compatibility'], function () {
     TraitsBrik.deps = ["behaviors", "composition", "arraySet", "root"];
     function TraitsBrik (brikz, st) {
         var coreFns = brikz.root.coreFns;
-        var SmalltalkBehaviorBody = brikz.behaviors.BehaviorBody;
+        var SmalltalkObject = brikz.root.Object;
         var setupMethods = brikz.composition.setupMethods;
         var traitMethodChanged = brikz.composition.traitMethodChanged;
         var buildBehaviorBody = brikz.behaviors.buildBehaviorBody;
@@ -72,7 +72,7 @@ define(['./compatibility'], function () {
         function SmalltalkTrait () {
         }
 
-        coreFns.Trait = inherits(SmalltalkTrait, SmalltalkBehaviorBody);
+        coreFns.Trait = inherits(SmalltalkTrait, SmalltalkObject);
 
         SmalltalkTrait.prototype.trait = true;
 
@@ -133,7 +133,7 @@ define(['./compatibility'], function () {
         var SmalltalkRoot = brikz.root.Root;
         var coreFns = brikz.root.coreFns;
         var globals = brikz.smalltalkGlobals.globals;
-        var SmalltalkBehaviorBody = brikz.behaviors.BehaviorBody;
+        var SmalltalkObject = brikz.root.Object;
         var buildBehaviorBody = brikz.behaviors.buildBehaviorBody;
         var setupMethods = brikz.composition.setupMethods;
         var removeBehaviorBody = brikz.behaviors.removeBehaviorBody;
@@ -149,7 +149,7 @@ define(['./compatibility'], function () {
         function SmalltalkMetaclass () {
         }
 
-        coreFns.Behavior = inherits(SmalltalkBehavior, SmalltalkBehaviorBody);
+        coreFns.Behavior = inherits(SmalltalkBehavior, SmalltalkObject);
         coreFns.Class = inherits(SmalltalkClass, SmalltalkBehavior);
         coreFns.Metaclass = inherits(SmalltalkMetaclass, SmalltalkBehavior);
 

Some files were not shown because too many files changed in this diff