Browse Source

Fixes issue #421

Nicolas Petton 10 years ago
parent
commit
34510451d2
3 changed files with 19 additions and 19 deletions
  1. 8 2
      js/Kernel-Infrastructure.js
  2. 11 5
      st/Kernel-Infrastructure.st
  3. 0 12
      support/boot.js

+ 8 - 2
js/Kernel-Infrastructure.js

@@ -2234,10 +2234,16 @@ category: 'packages',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-return self.packages.all();
+
+		var packages = [];
+		for(var key in self.packages) {
+			packages.push(self.packages[key]);
+		}
+		return packages;
+	;
 return self}, function($ctx1) {$ctx1.fill(self,"packages",{},smalltalk.Smalltalk)})},
 args: [],
-source: "packages\x0a\x09\x22Return all Package instances in the system.\x22\x0a\x0a\x09<return self.packages.all()>",
+source: "packages\x0a\x09\x22Return all Package instances in the system.\x22\x0a\x0a\x09<\x0a\x09\x09var packages = [];\x0a\x09\x09for(var key in self.packages) {\x0a\x09\x09\x09packages.push(self.packages[key]);\x0a\x09\x09}\x0a\x09\x09return packages;\x0a\x09>",
 messageSends: [],
 referencedClasses: []
 }),

+ 11 - 5
st/Kernel-Infrastructure.st

@@ -758,16 +758,16 @@ at: aString
 	^ self basicAt: aString
 !
 
-at: aString put: anObject
-	^ self basicAt: aString put: anObject
-!
-
 at: aKey ifAbsent: aBlock
 	^ (self includesKey: aKey)
 		ifTrue: [self at: aKey]
 		ifFalse: aBlock
 !
 
+at: aString put: anObject
+	^ self basicAt: aString put: anObject
+!
+
 includesKey: aKey
 	<return self.hasOwnProperty(aKey)>
 !
@@ -882,7 +882,13 @@ packageAt: packageName ifAbsent: aBlock
 packages
 	"Return all Package instances in the system."
 
-	<return self.packages.all()>
+	<
+		var packages = [];
+		for(var key in self.packages) {
+			packages.push(self.packages[key]);
+		}
+		return packages;
+	>
 !
 
 removePackage: packageName

+ 0 - 12
support/boot.js

@@ -523,18 +523,6 @@ function ClassesBrik(brikz, st) {
 		return wrappedClasses;
 	};
 
-	/* Answer all registered Packages as Array */
-	// TODO: Remove this hack
-
-	st.packages.all = function() {
-		var packages = [];
-		for(var i in st.packages) {
-			if(!st.packages.hasOwnProperty(i) || typeof(st.packages[i]) === "function") continue;
-			packages.push(st.packages[i]);
-		}
-		return packages;
-	};
-
 	// Still used, but could go away now that subclasses are stored
 	// into classes directly.
 	st.allSubclasses = function(klass) {