resin 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/amber/images/amber.svg +706 -0
- data/amber/js/Canvas.deploy.js +1311 -400
- data/amber/js/Canvas.js +1750 -424
- data/amber/js/Compiler.deploy.js +615 -615
- data/amber/js/Compiler.js +1367 -1367
- data/amber/js/IDE.deploy.js +1381 -1345
- data/amber/js/IDE.js +1949 -1903
- data/amber/js/Kernel-Announcements.deploy.js +37 -37
- data/amber/js/Kernel-Announcements.js +52 -52
- data/amber/js/Kernel-Collections.deploy.js +961 -950
- data/amber/js/Kernel-Collections.js +2064 -2053
- data/amber/js/Kernel-Methods.deploy.js +323 -260
- data/amber/js/Kernel-Methods.js +395 -327
- data/amber/js/Kernel-Objects.deploy.js +1846 -1104
- data/amber/js/Kernel-Objects.js +2142 -1194
- data/amber/js/boot.js +44 -29
- data/amber/js/parser.js +234 -17
- data/amber/js/parser.pegjs +9 -6
- data/amber/st/Canvas.st +474 -146
- data/amber/st/Compiler.st +418 -417
- data/amber/st/IDE.st +803 -772
- data/amber/st/Kernel-Announcements.st +27 -27
- data/amber/st/Kernel-Collections.st +289 -268
- data/amber/st/Kernel-Methods.st +104 -100
- data/amber/st/Kernel-Objects.st +277 -80
- metadata +18 -17
@@ -1,31 +1,4 @@
|
|
1
1
|
Smalltalk current createPackage: 'Kernel-Announcements' properties: #{}!
|
2
|
-
Object subclass: #Announcer
|
3
|
-
instanceVariableNames: 'registry subscriptions'
|
4
|
-
category: 'Kernel-Announcements'!
|
5
|
-
|
6
|
-
!Announcer methodsFor: 'announcing'!
|
7
|
-
|
8
|
-
announce: anAnnouncement
|
9
|
-
subscriptions do: [:each |
|
10
|
-
each deliver: anAnnouncement]
|
11
|
-
! !
|
12
|
-
|
13
|
-
!Announcer methodsFor: 'initialization'!
|
14
|
-
|
15
|
-
initialize
|
16
|
-
super initialize.
|
17
|
-
subscriptions := OrderedCollection new
|
18
|
-
! !
|
19
|
-
|
20
|
-
!Announcer methodsFor: 'subscribing'!
|
21
|
-
|
22
|
-
on: aClass do: aBlock
|
23
|
-
subscriptions add: (AnnouncementSubscription new
|
24
|
-
block: aBlock;
|
25
|
-
announcementClass: aClass;
|
26
|
-
yourself)
|
27
|
-
! !
|
28
|
-
|
29
2
|
Object subclass: #AnnouncementSubscription
|
30
3
|
instanceVariableNames: 'block announcementClass'
|
31
4
|
category: 'Kernel-Announcements'!
|
@@ -59,3 +32,30 @@ handlesAnnouncement: anAnnouncement
|
|
59
32
|
^anAnnouncement isKindOf: self announcementClass
|
60
33
|
! !
|
61
34
|
|
35
|
+
Object subclass: #Announcer
|
36
|
+
instanceVariableNames: 'registry subscriptions'
|
37
|
+
category: 'Kernel-Announcements'!
|
38
|
+
|
39
|
+
!Announcer methodsFor: 'announcing'!
|
40
|
+
|
41
|
+
announce: anAnnouncement
|
42
|
+
subscriptions do: [:each |
|
43
|
+
each deliver: anAnnouncement]
|
44
|
+
! !
|
45
|
+
|
46
|
+
!Announcer methodsFor: 'initialization'!
|
47
|
+
|
48
|
+
initialize
|
49
|
+
super initialize.
|
50
|
+
subscriptions := Array new
|
51
|
+
! !
|
52
|
+
|
53
|
+
!Announcer methodsFor: 'subscribing'!
|
54
|
+
|
55
|
+
on: aClass do: aBlock
|
56
|
+
subscriptions add: (AnnouncementSubscription new
|
57
|
+
block: aBlock;
|
58
|
+
announcementClass: aClass;
|
59
|
+
yourself)
|
60
|
+
! !
|
61
|
+
|
@@ -1,4 +1,214 @@
|
|
1
1
|
Smalltalk current createPackage: 'Kernel-Collections' properties: #{}!
|
2
|
+
Object subclass: #Stream
|
3
|
+
instanceVariableNames: 'collection position streamSize'
|
4
|
+
category: 'Kernel-Collections'!
|
5
|
+
|
6
|
+
!Stream methodsFor: 'accessing'!
|
7
|
+
|
8
|
+
collection
|
9
|
+
^collection
|
10
|
+
!
|
11
|
+
|
12
|
+
setCollection: aCollection
|
13
|
+
collection := aCollection
|
14
|
+
!
|
15
|
+
|
16
|
+
position
|
17
|
+
^position ifNil: [position := 0]
|
18
|
+
!
|
19
|
+
|
20
|
+
position: anInteger
|
21
|
+
position := anInteger
|
22
|
+
!
|
23
|
+
|
24
|
+
streamSize
|
25
|
+
^streamSize
|
26
|
+
!
|
27
|
+
|
28
|
+
setStreamSize: anInteger
|
29
|
+
streamSize := anInteger
|
30
|
+
!
|
31
|
+
|
32
|
+
contents
|
33
|
+
^self collection
|
34
|
+
copyFrom: 1
|
35
|
+
to: self streamSize
|
36
|
+
!
|
37
|
+
|
38
|
+
size
|
39
|
+
^self streamSize
|
40
|
+
! !
|
41
|
+
|
42
|
+
!Stream methodsFor: 'actions'!
|
43
|
+
|
44
|
+
reset
|
45
|
+
self position: 0
|
46
|
+
!
|
47
|
+
|
48
|
+
close
|
49
|
+
!
|
50
|
+
|
51
|
+
flush
|
52
|
+
!
|
53
|
+
|
54
|
+
resetContents
|
55
|
+
self reset.
|
56
|
+
self setStreamSize: 0
|
57
|
+
! !
|
58
|
+
|
59
|
+
!Stream methodsFor: 'enumerating'!
|
60
|
+
|
61
|
+
do: aBlock
|
62
|
+
[self atEnd] whileFalse: [aBlock value: self next]
|
63
|
+
! !
|
64
|
+
|
65
|
+
!Stream methodsFor: 'positioning'!
|
66
|
+
|
67
|
+
setToEnd
|
68
|
+
self position: self size
|
69
|
+
!
|
70
|
+
|
71
|
+
skip: anInteger
|
72
|
+
self position: ((self position + anInteger) min: self size max: 0)
|
73
|
+
! !
|
74
|
+
|
75
|
+
!Stream methodsFor: 'reading'!
|
76
|
+
|
77
|
+
next
|
78
|
+
^self atEnd
|
79
|
+
ifTrue: [nil]
|
80
|
+
ifFalse: [
|
81
|
+
self position: self position + 1.
|
82
|
+
collection at: self position]
|
83
|
+
!
|
84
|
+
|
85
|
+
next: anInteger
|
86
|
+
| tempCollection |
|
87
|
+
tempCollection := self collection class new.
|
88
|
+
anInteger timesRepeat: [
|
89
|
+
self atEnd ifFalse: [
|
90
|
+
tempCollection add: self next]].
|
91
|
+
^tempCollection
|
92
|
+
!
|
93
|
+
|
94
|
+
peek
|
95
|
+
^self atEnd ifFalse: [
|
96
|
+
self collection at: self position + 1]
|
97
|
+
! !
|
98
|
+
|
99
|
+
!Stream methodsFor: 'testing'!
|
100
|
+
|
101
|
+
atEnd
|
102
|
+
^self position = self size
|
103
|
+
!
|
104
|
+
|
105
|
+
atStart
|
106
|
+
^self position = 0
|
107
|
+
!
|
108
|
+
|
109
|
+
isEmpty
|
110
|
+
^self size = 0
|
111
|
+
! !
|
112
|
+
|
113
|
+
!Stream methodsFor: 'writing'!
|
114
|
+
|
115
|
+
nextPut: anObject
|
116
|
+
self position: self position + 1.
|
117
|
+
self collection at: self position put: anObject.
|
118
|
+
self setStreamSize: (self streamSize max: self position)
|
119
|
+
!
|
120
|
+
|
121
|
+
nextPutAll: aCollection
|
122
|
+
aCollection do: [:each |
|
123
|
+
self nextPut: each]
|
124
|
+
! !
|
125
|
+
|
126
|
+
!Stream class methodsFor: 'instance creation'!
|
127
|
+
|
128
|
+
on: aCollection
|
129
|
+
^self new
|
130
|
+
setCollection: aCollection;
|
131
|
+
setStreamSize: aCollection size;
|
132
|
+
yourself
|
133
|
+
! !
|
134
|
+
|
135
|
+
Object subclass: #Association
|
136
|
+
instanceVariableNames: 'key value'
|
137
|
+
category: 'Kernel-Collections'!
|
138
|
+
|
139
|
+
!Association methodsFor: 'accessing'!
|
140
|
+
|
141
|
+
key: aKey
|
142
|
+
key := aKey
|
143
|
+
!
|
144
|
+
|
145
|
+
key
|
146
|
+
^key
|
147
|
+
!
|
148
|
+
|
149
|
+
value: aValue
|
150
|
+
value := aValue
|
151
|
+
!
|
152
|
+
|
153
|
+
value
|
154
|
+
^value
|
155
|
+
! !
|
156
|
+
|
157
|
+
!Association methodsFor: 'comparing'!
|
158
|
+
|
159
|
+
= anAssociation
|
160
|
+
^self class = anAssociation class and: [
|
161
|
+
self key = anAssociation key and: [
|
162
|
+
self value = anAssociation value]]
|
163
|
+
!
|
164
|
+
|
165
|
+
storeOn: aStream
|
166
|
+
"Store in the format (key->value)"
|
167
|
+
|
168
|
+
"aStream nextPutAll: '('."
|
169
|
+
key storeOn: aStream.
|
170
|
+
aStream nextPutAll: '->'.
|
171
|
+
value storeOn: aStream.
|
172
|
+
"aStream nextPutAll: ')'"
|
173
|
+
! !
|
174
|
+
|
175
|
+
!Association class methodsFor: 'instance creation'!
|
176
|
+
|
177
|
+
key: aKey value: aValue
|
178
|
+
^self new
|
179
|
+
key: aKey;
|
180
|
+
value: aValue;
|
181
|
+
yourself
|
182
|
+
! !
|
183
|
+
|
184
|
+
Object subclass: #RegularExpression
|
185
|
+
instanceVariableNames: ''
|
186
|
+
category: 'Kernel-Collections'!
|
187
|
+
|
188
|
+
!RegularExpression methodsFor: 'evaluating'!
|
189
|
+
|
190
|
+
compile: aString
|
191
|
+
<return self.compile(aString)>
|
192
|
+
!
|
193
|
+
|
194
|
+
exec: aString
|
195
|
+
<return self.exec(aString) || nil>
|
196
|
+
!
|
197
|
+
|
198
|
+
test: aString
|
199
|
+
<return self.test(aString)>
|
200
|
+
! !
|
201
|
+
|
202
|
+
!RegularExpression class methodsFor: 'instance creation'!
|
203
|
+
|
204
|
+
fromString: aString flag: anotherString
|
205
|
+
<return new RegExp(aString, anotherString)>
|
206
|
+
!
|
207
|
+
|
208
|
+
fromString: aString
|
209
|
+
^self fromString: aString flag: ''
|
210
|
+
! !
|
211
|
+
|
2
212
|
Object subclass: #Collection
|
3
213
|
instanceVariableNames: ''
|
4
214
|
category: 'Kernel-Collections'!
|
@@ -60,7 +270,7 @@ asJSONString
|
|
60
270
|
!
|
61
271
|
|
62
272
|
asOrderedCollection
|
63
|
-
^
|
273
|
+
^self asArray
|
64
274
|
! !
|
65
275
|
|
66
276
|
!Collection methodsFor: 'copying'!
|
@@ -329,8 +539,8 @@ copyFrom: anIndex to: anotherIndex
|
|
329
539
|
| range newCollection |
|
330
540
|
range := anIndex to: anotherIndex.
|
331
541
|
newCollection := self class new: range size.
|
332
|
-
range
|
333
|
-
newCollection at:
|
542
|
+
range withIndexDo: [:each :i |
|
543
|
+
newCollection at: i put: (self at: each)].
|
334
544
|
^newCollection
|
335
545
|
!
|
336
546
|
|
@@ -953,214 +1163,121 @@ withAll: aCollection
|
|
953
1163
|
^instance
|
954
1164
|
! !
|
955
1165
|
|
956
|
-
|
1166
|
+
SequenceableCollection subclass: #Array
|
957
1167
|
instanceVariableNames: ''
|
958
1168
|
category: 'Kernel-Collections'!
|
959
1169
|
|
960
|
-
!
|
1170
|
+
!Array methodsFor: 'accessing'!
|
961
1171
|
|
962
|
-
|
963
|
-
<return self.
|
1172
|
+
size
|
1173
|
+
<return self.length>
|
964
1174
|
!
|
965
1175
|
|
966
|
-
|
967
|
-
<return self
|
1176
|
+
at: anIndex put: anObject
|
1177
|
+
<return self[anIndex - 1] = anObject>
|
968
1178
|
!
|
969
1179
|
|
970
|
-
|
971
|
-
<
|
1180
|
+
at: anIndex ifAbsent: aBlock
|
1181
|
+
<
|
1182
|
+
var value = self[anIndex - 1];
|
1183
|
+
if(value === undefined) {
|
1184
|
+
return aBlock();
|
1185
|
+
} else {
|
1186
|
+
return value;
|
1187
|
+
}
|
1188
|
+
>
|
972
1189
|
! !
|
973
1190
|
|
974
|
-
!
|
1191
|
+
!Array methodsFor: 'adding/removing'!
|
975
1192
|
|
976
|
-
|
977
|
-
<return
|
1193
|
+
add: anObject
|
1194
|
+
<self.push(anObject); return anObject;>
|
978
1195
|
!
|
979
1196
|
|
980
|
-
|
981
|
-
|
1197
|
+
remove: anObject
|
1198
|
+
<
|
1199
|
+
for(var i=0;i<self.length;i++) {
|
1200
|
+
if(self[i] == anObject) {
|
1201
|
+
self.splice(i,1);
|
1202
|
+
break;
|
1203
|
+
}
|
1204
|
+
}
|
1205
|
+
>
|
1206
|
+
!
|
1207
|
+
|
1208
|
+
removeFrom: aNumber to: anotherNumber
|
1209
|
+
<self.splice(aNumber - 1,anotherNumber - 1)>
|
982
1210
|
! !
|
983
1211
|
|
984
|
-
|
985
|
-
instanceVariableNames: 'key value'
|
986
|
-
category: 'Kernel-Collections'!
|
987
|
-
|
988
|
-
!Association methodsFor: 'accessing'!
|
989
|
-
|
990
|
-
key: aKey
|
991
|
-
key := aKey
|
992
|
-
!
|
993
|
-
|
994
|
-
key
|
995
|
-
^key
|
996
|
-
!
|
997
|
-
|
998
|
-
value: aValue
|
999
|
-
value := aValue
|
1000
|
-
!
|
1001
|
-
|
1002
|
-
value
|
1003
|
-
^value
|
1004
|
-
! !
|
1005
|
-
|
1006
|
-
!Association methodsFor: 'comparing'!
|
1007
|
-
|
1008
|
-
= anAssociation
|
1009
|
-
^self class = anAssociation class and: [
|
1010
|
-
self key = anAssociation key and: [
|
1011
|
-
self value = anAssociation value]]
|
1012
|
-
!
|
1013
|
-
|
1014
|
-
storeOn: aStream
|
1015
|
-
"Store in the format (key->value)"
|
1016
|
-
|
1017
|
-
"aStream nextPutAll: '('."
|
1018
|
-
key storeOn: aStream.
|
1019
|
-
aStream nextPutAll: '->'.
|
1020
|
-
value storeOn: aStream.
|
1021
|
-
"aStream nextPutAll: ')'"
|
1022
|
-
! !
|
1023
|
-
|
1024
|
-
!Association class methodsFor: 'instance creation'!
|
1025
|
-
|
1026
|
-
key: aKey value: aValue
|
1027
|
-
^self new
|
1028
|
-
key: aKey;
|
1029
|
-
value: aValue;
|
1030
|
-
yourself
|
1031
|
-
! !
|
1032
|
-
|
1033
|
-
Object subclass: #Stream
|
1034
|
-
instanceVariableNames: 'collection position streamSize'
|
1035
|
-
category: 'Kernel-Collections'!
|
1036
|
-
|
1037
|
-
!Stream methodsFor: 'accessing'!
|
1038
|
-
|
1039
|
-
collection
|
1040
|
-
^collection
|
1041
|
-
!
|
1042
|
-
|
1043
|
-
setCollection: aCollection
|
1044
|
-
collection := aCollection
|
1045
|
-
!
|
1046
|
-
|
1047
|
-
position
|
1048
|
-
^position ifNil: [position := 0]
|
1049
|
-
!
|
1050
|
-
|
1051
|
-
position: anInteger
|
1052
|
-
position := anInteger
|
1053
|
-
!
|
1054
|
-
|
1055
|
-
streamSize
|
1056
|
-
^streamSize
|
1057
|
-
!
|
1058
|
-
|
1059
|
-
setStreamSize: anInteger
|
1060
|
-
streamSize := anInteger
|
1061
|
-
!
|
1212
|
+
!Array methodsFor: 'converting'!
|
1062
1213
|
|
1063
|
-
|
1064
|
-
^self
|
1065
|
-
copyFrom: 1
|
1066
|
-
to: self streamSize
|
1214
|
+
asJavascript
|
1215
|
+
^'[', ((self collect: [:each | each asJavascript]) join: ', '), ']'
|
1067
1216
|
!
|
1068
1217
|
|
1069
|
-
|
1070
|
-
|
1218
|
+
reversed
|
1219
|
+
<return self._copy().reverse()>
|
1071
1220
|
! !
|
1072
1221
|
|
1073
|
-
!
|
1222
|
+
!Array methodsFor: 'enumerating'!
|
1074
1223
|
|
1075
|
-
|
1076
|
-
self
|
1224
|
+
join: aString
|
1225
|
+
<return self.join(aString)>
|
1077
1226
|
!
|
1078
1227
|
|
1079
|
-
|
1228
|
+
sort
|
1229
|
+
^self basicPerform: 'sort'
|
1080
1230
|
!
|
1081
1231
|
|
1082
|
-
|
1232
|
+
sort: aBlock
|
1233
|
+
<
|
1234
|
+
return self.sort(function(a, b) {
|
1235
|
+
if(aBlock(a,b)) {return -1} else {return 1}
|
1236
|
+
})
|
1237
|
+
>
|
1083
1238
|
!
|
1084
1239
|
|
1085
|
-
|
1086
|
-
self
|
1087
|
-
self setStreamSize: 0
|
1088
|
-
! !
|
1089
|
-
|
1090
|
-
!Stream methodsFor: 'enumerating'!
|
1091
|
-
|
1092
|
-
do: aBlock
|
1093
|
-
[self atEnd] whileFalse: [aBlock value: self next]
|
1094
|
-
! !
|
1095
|
-
|
1096
|
-
!Stream methodsFor: 'positioning'!
|
1097
|
-
|
1098
|
-
setToEnd
|
1099
|
-
self position: self size
|
1240
|
+
sorted
|
1241
|
+
^self copy sort
|
1100
1242
|
!
|
1101
1243
|
|
1102
|
-
|
1103
|
-
self
|
1244
|
+
sorted: aBlock
|
1245
|
+
^self copy sort: aBlock
|
1104
1246
|
! !
|
1105
1247
|
|
1106
|
-
!
|
1107
|
-
|
1108
|
-
next
|
1109
|
-
^self atEnd
|
1110
|
-
ifTrue: [nil]
|
1111
|
-
ifFalse: [
|
1112
|
-
self position: self position + 1.
|
1113
|
-
collection at: self position]
|
1114
|
-
!
|
1248
|
+
!Array class methodsFor: 'instance creation'!
|
1115
1249
|
|
1116
|
-
|
1117
|
-
|
1118
|
-
tempCollection := self collection class new.
|
1119
|
-
anInteger timesRepeat: [
|
1120
|
-
self atEnd ifFalse: [
|
1121
|
-
tempCollection add: self next]].
|
1122
|
-
^tempCollection
|
1250
|
+
new: anInteger
|
1251
|
+
<return new Array(anInteger)>
|
1123
1252
|
!
|
1124
1253
|
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
!Stream methodsFor: 'testing'!
|
1131
|
-
|
1132
|
-
atEnd
|
1133
|
-
^self position = self size
|
1254
|
+
with: anObject
|
1255
|
+
^(self new: 1)
|
1256
|
+
at: 1 put: anObject;
|
1257
|
+
yourself
|
1134
1258
|
!
|
1135
1259
|
|
1136
|
-
|
1137
|
-
|
1260
|
+
with: anObject with: anObject2
|
1261
|
+
^(self new: 2)
|
1262
|
+
at: 1 put: anObject;
|
1263
|
+
at: 2 put: anObject2;
|
1264
|
+
yourself
|
1138
1265
|
!
|
1139
1266
|
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1146
|
-
nextPut: anObject
|
1147
|
-
self position: self position + 1.
|
1148
|
-
self collection at: self position put: anObject.
|
1149
|
-
self setStreamSize: (self streamSize max: self position)
|
1267
|
+
with: anObject with: anObject2 with: anObject3
|
1268
|
+
^(self new: 3)
|
1269
|
+
at: 1 put: anObject;
|
1270
|
+
at: 2 put: anObject2;
|
1271
|
+
at: 3 put: anObject3;
|
1272
|
+
yourself
|
1150
1273
|
!
|
1151
1274
|
|
1152
|
-
|
1153
|
-
|
1154
|
-
|
1155
|
-
|
1156
|
-
|
1157
|
-
|
1158
|
-
|
1159
|
-
on: aCollection
|
1160
|
-
^self new
|
1161
|
-
setCollection: aCollection;
|
1162
|
-
setStreamSize: aCollection size;
|
1163
|
-
yourself
|
1275
|
+
withAll: aCollection
|
1276
|
+
| instance |
|
1277
|
+
instance := self new: aCollection size.
|
1278
|
+
aCollection withIndexDo: [:index :each |
|
1279
|
+
instance at: index put: each].
|
1280
|
+
^instance
|
1164
1281
|
! !
|
1165
1282
|
|
1166
1283
|
Stream subclass: #StringStream
|
@@ -1224,7 +1341,7 @@ size
|
|
1224
1341
|
add: anObject
|
1225
1342
|
<
|
1226
1343
|
var found;
|
1227
|
-
for(var i
|
1344
|
+
for(var i=0; i < self['@elements'].length; i++) {
|
1228
1345
|
if(anObject == self['@elements'][i]) {
|
1229
1346
|
found = true;
|
1230
1347
|
break;
|
@@ -1575,99 +1692,3 @@ includesKey: aKey
|
|
1575
1692
|
^keys includes: aKey
|
1576
1693
|
! !
|
1577
1694
|
|
1578
|
-
SequenceableCollection subclass: #OrderedCollection
|
1579
|
-
instanceVariableNames: 'elements'
|
1580
|
-
category: 'Kernel-Collections'!
|
1581
|
-
|
1582
|
-
!OrderedCollection methodsFor: 'accessing'!
|
1583
|
-
|
1584
|
-
size
|
1585
|
-
^elements size
|
1586
|
-
!
|
1587
|
-
|
1588
|
-
at: anIndex put: anObject
|
1589
|
-
<return self['@elements'][anIndex - 1] = anObject>
|
1590
|
-
!
|
1591
|
-
|
1592
|
-
at: anIndex ifAbsent: aBlock
|
1593
|
-
^elements at: anIndex ifAbsent: aBlock
|
1594
|
-
! !
|
1595
|
-
|
1596
|
-
!OrderedCollection methodsFor: 'adding/removing'!
|
1597
|
-
|
1598
|
-
add: anObject
|
1599
|
-
<self['@elements'].push(anObject); return anObject;>
|
1600
|
-
!
|
1601
|
-
|
1602
|
-
remove: anObject
|
1603
|
-
<
|
1604
|
-
for(var i=0;i<self['@elements'].length;i++) {
|
1605
|
-
if(self['@elements'][i] == anObject) {
|
1606
|
-
self['@elements'].splice(i,1);
|
1607
|
-
break;
|
1608
|
-
}
|
1609
|
-
}
|
1610
|
-
>
|
1611
|
-
!
|
1612
|
-
|
1613
|
-
removeFrom: aNumber to: anotherNumber
|
1614
|
-
<self['@elements'].splice(aNumber - 1,anotherNumber - 1)>
|
1615
|
-
! !
|
1616
|
-
|
1617
|
-
!OrderedCollection methodsFor: 'converting'!
|
1618
|
-
|
1619
|
-
reversed
|
1620
|
-
^self asArray reversed asOrderedCollection
|
1621
|
-
!
|
1622
|
-
|
1623
|
-
asOrderedCollection
|
1624
|
-
^self
|
1625
|
-
!
|
1626
|
-
|
1627
|
-
asArray
|
1628
|
-
^elements copy
|
1629
|
-
! !
|
1630
|
-
|
1631
|
-
!OrderedCollection methodsFor: 'enumerating'!
|
1632
|
-
|
1633
|
-
join: aString
|
1634
|
-
^elements join: aString
|
1635
|
-
!
|
1636
|
-
|
1637
|
-
sort
|
1638
|
-
elements sort.
|
1639
|
-
^self
|
1640
|
-
!
|
1641
|
-
|
1642
|
-
sort: aBlock
|
1643
|
-
elements sort: aBlock.
|
1644
|
-
^self
|
1645
|
-
!
|
1646
|
-
|
1647
|
-
sorted
|
1648
|
-
^self copy sort
|
1649
|
-
!
|
1650
|
-
|
1651
|
-
sorted: aBlock
|
1652
|
-
^self copy sort: aBlock
|
1653
|
-
!
|
1654
|
-
|
1655
|
-
withIndexDo: aBlock
|
1656
|
-
elements withIndexDo: aBlock
|
1657
|
-
!
|
1658
|
-
|
1659
|
-
detect: aBlock ifNone: anotherBlock
|
1660
|
-
^elements detect: aBlock ifNone: anotherBlock
|
1661
|
-
!
|
1662
|
-
|
1663
|
-
do: aBlock
|
1664
|
-
elements do: aBlock
|
1665
|
-
! !
|
1666
|
-
|
1667
|
-
!OrderedCollection methodsFor: 'initialization'!
|
1668
|
-
|
1669
|
-
initialize
|
1670
|
-
super initialize.
|
1671
|
-
elements := #()
|
1672
|
-
! !
|
1673
|
-
|