|
@@ -1,4 +1,214 @@
|
|
Smalltalk current createPackage: 'Kernel-Collections' properties: #{}!
|
|
Smalltalk current createPackage: 'Kernel-Collections' properties: #{}!
|
|
|
|
+Object subclass: #Association
|
|
|
|
+ instanceVariableNames: 'key value'
|
|
|
|
+ category: 'Kernel-Collections'!
|
|
|
|
+
|
|
|
|
+!Association methodsFor: 'accessing'!
|
|
|
|
+
|
|
|
|
+key: aKey
|
|
|
|
+ key := aKey
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+key
|
|
|
|
+ ^key
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+value: aValue
|
|
|
|
+ value := aValue
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+value
|
|
|
|
+ ^value
|
|
|
|
+! !
|
|
|
|
+
|
|
|
|
+!Association methodsFor: 'comparing'!
|
|
|
|
+
|
|
|
|
+= anAssociation
|
|
|
|
+ ^self class = anAssociation class and: [
|
|
|
|
+ self key = anAssociation key and: [
|
|
|
|
+ self value = anAssociation value]]
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+storeOn: aStream
|
|
|
|
+ "Store in the format (key->value)"
|
|
|
|
+
|
|
|
|
+ "aStream nextPutAll: '('."
|
|
|
|
+ key storeOn: aStream.
|
|
|
|
+ aStream nextPutAll: '->'.
|
|
|
|
+ value storeOn: aStream.
|
|
|
|
+ "aStream nextPutAll: ')'"
|
|
|
|
+! !
|
|
|
|
+
|
|
|
|
+!Association class methodsFor: 'instance creation'!
|
|
|
|
+
|
|
|
|
+key: aKey value: aValue
|
|
|
|
+ ^self new
|
|
|
|
+ key: aKey;
|
|
|
|
+ value: aValue;
|
|
|
|
+ yourself
|
|
|
|
+! !
|
|
|
|
+
|
|
|
|
+Object subclass: #Stream
|
|
|
|
+ instanceVariableNames: 'collection position streamSize'
|
|
|
|
+ category: 'Kernel-Collections'!
|
|
|
|
+
|
|
|
|
+!Stream methodsFor: 'accessing'!
|
|
|
|
+
|
|
|
|
+collection
|
|
|
|
+ ^collection
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+setCollection: aCollection
|
|
|
|
+ collection := aCollection
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+position
|
|
|
|
+ ^position ifNil: [position := 0]
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+position: anInteger
|
|
|
|
+ position := anInteger
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+streamSize
|
|
|
|
+ ^streamSize
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+setStreamSize: anInteger
|
|
|
|
+ streamSize := anInteger
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+contents
|
|
|
|
+ ^self collection
|
|
|
|
+ copyFrom: 1
|
|
|
|
+ to: self streamSize
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+size
|
|
|
|
+ ^self streamSize
|
|
|
|
+! !
|
|
|
|
+
|
|
|
|
+!Stream methodsFor: 'actions'!
|
|
|
|
+
|
|
|
|
+reset
|
|
|
|
+ self position: 0
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+close
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+flush
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+resetContents
|
|
|
|
+ self reset.
|
|
|
|
+ self setStreamSize: 0
|
|
|
|
+! !
|
|
|
|
+
|
|
|
|
+!Stream methodsFor: 'enumerating'!
|
|
|
|
+
|
|
|
|
+do: aBlock
|
|
|
|
+ [self atEnd] whileFalse: [aBlock value: self next]
|
|
|
|
+! !
|
|
|
|
+
|
|
|
|
+!Stream methodsFor: 'positioning'!
|
|
|
|
+
|
|
|
|
+setToEnd
|
|
|
|
+ self position: self size
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+skip: anInteger
|
|
|
|
+ self position: ((self position + anInteger) min: self size max: 0)
|
|
|
|
+! !
|
|
|
|
+
|
|
|
|
+!Stream methodsFor: 'reading'!
|
|
|
|
+
|
|
|
|
+next
|
|
|
|
+ ^self atEnd
|
|
|
|
+ ifTrue: [nil]
|
|
|
|
+ ifFalse: [
|
|
|
|
+ self position: self position + 1.
|
|
|
|
+ collection at: self position]
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+next: anInteger
|
|
|
|
+ | tempCollection |
|
|
|
|
+ tempCollection := self collection class new.
|
|
|
|
+ anInteger timesRepeat: [
|
|
|
|
+ self atEnd ifFalse: [
|
|
|
|
+ tempCollection add: self next]].
|
|
|
|
+ ^tempCollection
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+peek
|
|
|
|
+ ^self atEnd ifFalse: [
|
|
|
|
+ self collection at: self position + 1]
|
|
|
|
+! !
|
|
|
|
+
|
|
|
|
+!Stream methodsFor: 'testing'!
|
|
|
|
+
|
|
|
|
+atEnd
|
|
|
|
+ ^self position = self size
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+atStart
|
|
|
|
+ ^self position = 0
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+isEmpty
|
|
|
|
+ ^self size = 0
|
|
|
|
+! !
|
|
|
|
+
|
|
|
|
+!Stream methodsFor: 'writing'!
|
|
|
|
+
|
|
|
|
+nextPut: anObject
|
|
|
|
+ self position: self position + 1.
|
|
|
|
+ self collection at: self position put: anObject.
|
|
|
|
+ self setStreamSize: (self streamSize max: self position)
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+nextPutAll: aCollection
|
|
|
|
+ aCollection do: [:each |
|
|
|
|
+ self nextPut: each]
|
|
|
|
+! !
|
|
|
|
+
|
|
|
|
+!Stream class methodsFor: 'instance creation'!
|
|
|
|
+
|
|
|
|
+on: aCollection
|
|
|
|
+ ^self new
|
|
|
|
+ setCollection: aCollection;
|
|
|
|
+ setStreamSize: aCollection size;
|
|
|
|
+ yourself
|
|
|
|
+! !
|
|
|
|
+
|
|
|
|
+Object subclass: #RegularExpression
|
|
|
|
+ instanceVariableNames: ''
|
|
|
|
+ category: 'Kernel-Collections'!
|
|
|
|
+
|
|
|
|
+!RegularExpression methodsFor: 'evaluating'!
|
|
|
|
+
|
|
|
|
+compile: aString
|
|
|
|
+ <return self.compile(aString)>
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+exec: aString
|
|
|
|
+ <return self.exec(aString) || nil>
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+test: aString
|
|
|
|
+ <return self.test(aString)>
|
|
|
|
+! !
|
|
|
|
+
|
|
|
|
+!RegularExpression class methodsFor: 'instance creation'!
|
|
|
|
+
|
|
|
|
+fromString: aString flag: anotherString
|
|
|
|
+ <return new RegExp(aString, anotherString)>
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+fromString: aString
|
|
|
|
+ ^self fromString: aString flag: ''
|
|
|
|
+! !
|
|
|
|
+
|
|
Object subclass: #Collection
|
|
Object subclass: #Collection
|
|
instanceVariableNames: ''
|
|
instanceVariableNames: ''
|
|
category: 'Kernel-Collections'!
|
|
category: 'Kernel-Collections'!
|
|
@@ -60,7 +270,7 @@ asJSONString
|
|
!
|
|
!
|
|
|
|
|
|
asOrderedCollection
|
|
asOrderedCollection
|
|
- ^OrderedCollection withAll: self
|
|
|
|
|
|
+ ^self asArray
|
|
! !
|
|
! !
|
|
|
|
|
|
!Collection methodsFor: 'copying'!
|
|
!Collection methodsFor: 'copying'!
|
|
@@ -953,214 +1163,121 @@ withAll: aCollection
|
|
^instance
|
|
^instance
|
|
! !
|
|
! !
|
|
|
|
|
|
-Object subclass: #RegularExpression
|
|
|
|
|
|
+SequenceableCollection subclass: #Array
|
|
instanceVariableNames: ''
|
|
instanceVariableNames: ''
|
|
category: 'Kernel-Collections'!
|
|
category: 'Kernel-Collections'!
|
|
|
|
|
|
-!RegularExpression methodsFor: 'evaluating'!
|
|
|
|
|
|
+!Array methodsFor: 'accessing'!
|
|
|
|
|
|
-compile: aString
|
|
|
|
- <return self.compile(aString)>
|
|
|
|
|
|
+size
|
|
|
|
+ <return self.length>
|
|
!
|
|
!
|
|
|
|
|
|
-exec: aString
|
|
|
|
- <return self.exec(aString) || nil>
|
|
|
|
|
|
+at: anIndex put: anObject
|
|
|
|
+ <return self[anIndex - 1] = anObject>
|
|
!
|
|
!
|
|
|
|
|
|
-test: aString
|
|
|
|
- <return self.test(aString)>
|
|
|
|
|
|
+at: anIndex ifAbsent: aBlock
|
|
|
|
+ <
|
|
|
|
+ var value = self[anIndex - 1];
|
|
|
|
+ if(value === undefined) {
|
|
|
|
+ return aBlock();
|
|
|
|
+ } else {
|
|
|
|
+ return value;
|
|
|
|
+ }
|
|
|
|
+ >
|
|
! !
|
|
! !
|
|
|
|
|
|
-!RegularExpression class methodsFor: 'instance creation'!
|
|
|
|
|
|
+!Array methodsFor: 'adding/removing'!
|
|
|
|
|
|
-fromString: aString flag: anotherString
|
|
|
|
- <return new RegExp(aString, anotherString)>
|
|
|
|
|
|
+add: anObject
|
|
|
|
+ <self.push(anObject); return anObject;>
|
|
!
|
|
!
|
|
|
|
|
|
-fromString: aString
|
|
|
|
- ^self fromString: aString flag: ''
|
|
|
|
|
|
+remove: anObject
|
|
|
|
+ <
|
|
|
|
+ for(var i=0;i<self.length;i++) {
|
|
|
|
+ if(self[i] == anObject) {
|
|
|
|
+ self.splice(i,1);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ >
|
|
|
|
+!
|
|
|
|
+
|
|
|
|
+removeFrom: aNumber to: anotherNumber
|
|
|
|
+ <self.splice(aNumber - 1,anotherNumber - 1)>
|
|
! !
|
|
! !
|
|
|
|
|
|
-Object subclass: #Association
|
|
|
|
- instanceVariableNames: 'key value'
|
|
|
|
- category: 'Kernel-Collections'!
|
|
|
|
-
|
|
|
|
-!Association methodsFor: 'accessing'!
|
|
|
|
-
|
|
|
|
-key: aKey
|
|
|
|
- key := aKey
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-key
|
|
|
|
- ^key
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-value: aValue
|
|
|
|
- value := aValue
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-value
|
|
|
|
- ^value
|
|
|
|
-! !
|
|
|
|
-
|
|
|
|
-!Association methodsFor: 'comparing'!
|
|
|
|
-
|
|
|
|
-= anAssociation
|
|
|
|
- ^self class = anAssociation class and: [
|
|
|
|
- self key = anAssociation key and: [
|
|
|
|
- self value = anAssociation value]]
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-storeOn: aStream
|
|
|
|
- "Store in the format (key->value)"
|
|
|
|
-
|
|
|
|
- "aStream nextPutAll: '('."
|
|
|
|
- key storeOn: aStream.
|
|
|
|
- aStream nextPutAll: '->'.
|
|
|
|
- value storeOn: aStream.
|
|
|
|
- "aStream nextPutAll: ')'"
|
|
|
|
-! !
|
|
|
|
-
|
|
|
|
-!Association class methodsFor: 'instance creation'!
|
|
|
|
-
|
|
|
|
-key: aKey value: aValue
|
|
|
|
- ^self new
|
|
|
|
- key: aKey;
|
|
|
|
- value: aValue;
|
|
|
|
- yourself
|
|
|
|
-! !
|
|
|
|
-
|
|
|
|
-Object subclass: #Stream
|
|
|
|
- instanceVariableNames: 'collection position streamSize'
|
|
|
|
- category: 'Kernel-Collections'!
|
|
|
|
-
|
|
|
|
-!Stream methodsFor: 'accessing'!
|
|
|
|
-
|
|
|
|
-collection
|
|
|
|
- ^collection
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-setCollection: aCollection
|
|
|
|
- collection := aCollection
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-position
|
|
|
|
- ^position ifNil: [position := 0]
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-position: anInteger
|
|
|
|
- position := anInteger
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-streamSize
|
|
|
|
- ^streamSize
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-setStreamSize: anInteger
|
|
|
|
- streamSize := anInteger
|
|
|
|
-!
|
|
|
|
|
|
+!Array methodsFor: 'converting'!
|
|
|
|
|
|
-contents
|
|
|
|
- ^self collection
|
|
|
|
- copyFrom: 1
|
|
|
|
- to: self streamSize
|
|
|
|
|
|
+asJavascript
|
|
|
|
+ ^'[', ((self collect: [:each | each asJavascript]) join: ', '), ']'
|
|
!
|
|
!
|
|
|
|
|
|
-size
|
|
|
|
- ^self streamSize
|
|
|
|
|
|
+reversed
|
|
|
|
+ <return self._copy().reverse()>
|
|
! !
|
|
! !
|
|
|
|
|
|
-!Stream methodsFor: 'actions'!
|
|
|
|
|
|
+!Array methodsFor: 'enumerating'!
|
|
|
|
|
|
-reset
|
|
|
|
- self position: 0
|
|
|
|
|
|
+join: aString
|
|
|
|
+ <return self.join(aString)>
|
|
!
|
|
!
|
|
|
|
|
|
-close
|
|
|
|
|
|
+sort
|
|
|
|
+ ^self basicPerform: 'sort'
|
|
!
|
|
!
|
|
|
|
|
|
-flush
|
|
|
|
|
|
+sort: aBlock
|
|
|
|
+ <
|
|
|
|
+ return self.sort(function(a, b) {
|
|
|
|
+ if(aBlock(a,b)) {return -1} else {return 1}
|
|
|
|
+ })
|
|
|
|
+ >
|
|
!
|
|
!
|
|
|
|
|
|
-resetContents
|
|
|
|
- self reset.
|
|
|
|
- self setStreamSize: 0
|
|
|
|
-! !
|
|
|
|
-
|
|
|
|
-!Stream methodsFor: 'enumerating'!
|
|
|
|
-
|
|
|
|
-do: aBlock
|
|
|
|
- [self atEnd] whileFalse: [aBlock value: self next]
|
|
|
|
-! !
|
|
|
|
-
|
|
|
|
-!Stream methodsFor: 'positioning'!
|
|
|
|
-
|
|
|
|
-setToEnd
|
|
|
|
- self position: self size
|
|
|
|
|
|
+sorted
|
|
|
|
+ ^self copy sort
|
|
!
|
|
!
|
|
|
|
|
|
-skip: anInteger
|
|
|
|
- self position: ((self position + anInteger) min: self size max: 0)
|
|
|
|
|
|
+sorted: aBlock
|
|
|
|
+ ^self copy sort: aBlock
|
|
! !
|
|
! !
|
|
|
|
|
|
-!Stream methodsFor: 'reading'!
|
|
|
|
-
|
|
|
|
-next
|
|
|
|
- ^self atEnd
|
|
|
|
- ifTrue: [nil]
|
|
|
|
- ifFalse: [
|
|
|
|
- self position: self position + 1.
|
|
|
|
- collection at: self position]
|
|
|
|
-!
|
|
|
|
|
|
+!Array class methodsFor: 'instance creation'!
|
|
|
|
|
|
-next: anInteger
|
|
|
|
- | tempCollection |
|
|
|
|
- tempCollection := self collection class new.
|
|
|
|
- anInteger timesRepeat: [
|
|
|
|
- self atEnd ifFalse: [
|
|
|
|
- tempCollection add: self next]].
|
|
|
|
- ^tempCollection
|
|
|
|
|
|
+new: anInteger
|
|
|
|
+ <return new Array(anInteger)>
|
|
!
|
|
!
|
|
|
|
|
|
-peek
|
|
|
|
- ^self atEnd ifFalse: [
|
|
|
|
- self collection at: self position + 1]
|
|
|
|
-! !
|
|
|
|
-
|
|
|
|
-!Stream methodsFor: 'testing'!
|
|
|
|
-
|
|
|
|
-atEnd
|
|
|
|
- ^self position = self size
|
|
|
|
|
|
+with: anObject
|
|
|
|
+ ^(self new: 1)
|
|
|
|
+ at: 1 put: anObject;
|
|
|
|
+ yourself
|
|
!
|
|
!
|
|
|
|
|
|
-atStart
|
|
|
|
- ^self position = 0
|
|
|
|
|
|
+with: anObject with: anObject2
|
|
|
|
+ ^(self new: 2)
|
|
|
|
+ at: 1 put: anObject;
|
|
|
|
+ at: 2 put: anObject2;
|
|
|
|
+ yourself
|
|
!
|
|
!
|
|
|
|
|
|
-isEmpty
|
|
|
|
- ^self size = 0
|
|
|
|
-! !
|
|
|
|
-
|
|
|
|
-!Stream methodsFor: 'writing'!
|
|
|
|
-
|
|
|
|
-nextPut: anObject
|
|
|
|
- self position: self position + 1.
|
|
|
|
- self collection at: self position put: anObject.
|
|
|
|
- self setStreamSize: (self streamSize max: self position)
|
|
|
|
|
|
+with: anObject with: anObject2 with: anObject3
|
|
|
|
+ ^(self new: 3)
|
|
|
|
+ at: 1 put: anObject;
|
|
|
|
+ at: 2 put: anObject2;
|
|
|
|
+ at: 3 put: anObject3;
|
|
|
|
+ yourself
|
|
!
|
|
!
|
|
|
|
|
|
-nextPutAll: aCollection
|
|
|
|
- aCollection do: [:each |
|
|
|
|
- self nextPut: each]
|
|
|
|
-! !
|
|
|
|
-
|
|
|
|
-!Stream class methodsFor: 'instance creation'!
|
|
|
|
-
|
|
|
|
-on: aCollection
|
|
|
|
- ^self new
|
|
|
|
- setCollection: aCollection;
|
|
|
|
- setStreamSize: aCollection size;
|
|
|
|
- yourself
|
|
|
|
|
|
+withAll: aCollection
|
|
|
|
+ | instance |
|
|
|
|
+ instance := self new: aCollection size.
|
|
|
|
+ aCollection withIndexDo: [:index :each |
|
|
|
|
+ instance at: index put: each].
|
|
|
|
+ ^instance
|
|
! !
|
|
! !
|
|
|
|
|
|
Stream subclass: #StringStream
|
|
Stream subclass: #StringStream
|
|
@@ -1224,7 +1341,7 @@ size
|
|
add: anObject
|
|
add: anObject
|
|
<
|
|
<
|
|
var found;
|
|
var found;
|
|
- for(var i in self['@elements']) {
|
|
|
|
|
|
+ for(var i=0; i < self['@elements'].length; i++) {
|
|
if(anObject == self['@elements'][i]) {
|
|
if(anObject == self['@elements'][i]) {
|
|
found = true;
|
|
found = true;
|
|
break;
|
|
break;
|
|
@@ -1575,99 +1692,3 @@ includesKey: aKey
|
|
^keys includes: aKey
|
|
^keys includes: aKey
|
|
! !
|
|
! !
|
|
|
|
|
|
-SequenceableCollection subclass: #OrderedCollection
|
|
|
|
- instanceVariableNames: 'elements'
|
|
|
|
- category: 'Kernel-Collections'!
|
|
|
|
-
|
|
|
|
-!OrderedCollection methodsFor: 'accessing'!
|
|
|
|
-
|
|
|
|
-size
|
|
|
|
- ^elements size
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-at: anIndex put: anObject
|
|
|
|
- <return self['@elements'][anIndex - 1] = anObject>
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-at: anIndex ifAbsent: aBlock
|
|
|
|
- ^elements at: anIndex ifAbsent: aBlock
|
|
|
|
-! !
|
|
|
|
-
|
|
|
|
-!OrderedCollection methodsFor: 'adding/removing'!
|
|
|
|
-
|
|
|
|
-add: anObject
|
|
|
|
- <self['@elements'].push(anObject); return anObject;>
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-remove: anObject
|
|
|
|
- <
|
|
|
|
- for(var i=0;i<self['@elements'].length;i++) {
|
|
|
|
- if(self['@elements'][i] == anObject) {
|
|
|
|
- self['@elements'].splice(i,1);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- >
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-removeFrom: aNumber to: anotherNumber
|
|
|
|
- <self['@elements'].splice(aNumber - 1,anotherNumber - 1)>
|
|
|
|
-! !
|
|
|
|
-
|
|
|
|
-!OrderedCollection methodsFor: 'converting'!
|
|
|
|
-
|
|
|
|
-reversed
|
|
|
|
- ^self asArray reversed asOrderedCollection
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-asOrderedCollection
|
|
|
|
- ^self
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-asArray
|
|
|
|
- ^elements copy
|
|
|
|
-! !
|
|
|
|
-
|
|
|
|
-!OrderedCollection methodsFor: 'enumerating'!
|
|
|
|
-
|
|
|
|
-join: aString
|
|
|
|
- ^elements join: aString
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-sort
|
|
|
|
- elements sort.
|
|
|
|
- ^self
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-sort: aBlock
|
|
|
|
- elements sort: aBlock.
|
|
|
|
- ^self
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-sorted
|
|
|
|
- ^self copy sort
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-sorted: aBlock
|
|
|
|
- ^self copy sort: aBlock
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-withIndexDo: aBlock
|
|
|
|
- elements withIndexDo: aBlock
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-detect: aBlock ifNone: anotherBlock
|
|
|
|
- ^elements detect: aBlock ifNone: anotherBlock
|
|
|
|
-!
|
|
|
|
-
|
|
|
|
-do: aBlock
|
|
|
|
- elements do: aBlock
|
|
|
|
-! !
|
|
|
|
-
|
|
|
|
-!OrderedCollection methodsFor: 'initialization'!
|
|
|
|
-
|
|
|
|
-initialize
|
|
|
|
- super initialize.
|
|
|
|
- elements := #()
|
|
|
|
-! !
|
|
|
|
-
|
|
|