Browse Source

Fix for Exporter >> exportPackage: to remove class duplicates due to class aliases (like Date and Time)

Nicolas Petton 13 years ago
parent
commit
4bf05c3a73

File diff suppressed because it is too large
+ 9 - 9
js/Compiler.deploy.js


File diff suppressed because it is too large
+ 9 - 9
js/Compiler.js


+ 9 - 231
js/Kernel-Collections.deploy.js

@@ -131,7 +131,7 @@ smalltalk.addMethod(
 unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
-fn: function (){
+fn: function () {
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_asArray", []), "_collect_", [(function(each){return smalltalk.send(each, "_asJSON", []);})]);
 return self;}
@@ -273,7 +273,7 @@ smalltalk.addMethod(
 unescape('_ifEmpty_'),
 smalltalk.method({
 selector: unescape('ifEmpty%3A'),
-fn: function (aBlock){
+fn: function (aBlock) {
 var self=this;
 return ((($receiver = smalltalk.send(self, "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(aBlock, "_value", []);})() : (function(){return self;})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(aBlock, "_value", []);}), (function(){return self;})]));
 return self;}
@@ -578,7 +578,7 @@ smalltalk.addMethod(
 unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
-fn: function (){
+fn: function () {
 var self=this;
 var c=nil;
 (c=smalltalk.send(smalltalk.send(self, "_class", []), "_new", []));
@@ -818,7 +818,7 @@ smalltalk.addMethod(
 unescape('_removeKey_'),
 smalltalk.method({
 selector: unescape('removeKey%3A'),
-fn: function (aKey){
+fn: function (aKey) {
 var self=this;
 return smalltalk.send(self, "_remove_", [aKey]);
 return self;}
@@ -931,7 +931,7 @@ smalltalk.addMethod(
 unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
-fn: function (){
+fn: function () {
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_asHashedCollection", []), "_asJSON", []);
 return self;}
@@ -1019,7 +1019,7 @@ smalltalk.addMethod(
 unescape('_removeKey_ifAbsent_'),
 smalltalk.method({
 selector: unescape('removeKey%3AifAbsent%3A'),
-fn: function (aKey, aBlock){
+fn: function (aKey, aBlock) {
 var self=this;
 
             var index = self['@keys'].indexOf(aKey);
@@ -1186,7 +1186,7 @@ smalltalk.addMethod(
 unescape('_first_'),
 smalltalk.method({
 selector: unescape('first%3A'),
-fn: function (n){
+fn: function (n) {
 var self=this;
 return smalltalk.send(self, "_copyFrom_to_", [(1), n]);
 return self;}
@@ -1578,228 +1578,6 @@ return self;}
 smalltalk.Array.klass);
 
 
-smalltalk.addClass('Array', smalltalk.SequenceableCollection, [], 'Kernel-Collections');
-smalltalk.addMethod(
-unescape('_add_'),
-smalltalk.method({
-selector: unescape('add%3A'),
-fn: function (anObject) {
-var self=this;
-self.push(anObject); return anObject;;
-return self;}
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_asJavascript'),
-smalltalk.method({
-selector: unescape('asJavascript'),
-fn: function () {
-var self=this;
-return smalltalk.send(smalltalk.send(unescape("%5B"), "__comma", [smalltalk.send(smalltalk.send(self, "_collect_", [(function(each){return smalltalk.send(each, "_asJavascript", []);})]), "_join_", [unescape("%2C%20")])]), "__comma", [unescape("%5D")]);
-return self;}
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_at_ifAbsent_'),
-smalltalk.method({
-selector: unescape('at%3AifAbsent%3A'),
-fn: function (anIndex, aBlock) {
-var self=this;
-
-	    var value = self[anIndex - 1];
-	    if(value === undefined) {
-		return aBlock();
-	    } else {
-		return value;
-	    }
-	;
-return self;}
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_at_put_'),
-smalltalk.method({
-selector: unescape('at%3Aput%3A'),
-fn: function (anIndex, anObject) {
-var self=this;
-return self[anIndex - 1] = anObject;
-return self;}
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_join_'),
-smalltalk.method({
-selector: unescape('join%3A'),
-fn: function (aString) {
-var self=this;
-return self.join(aString);
-return self;}
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_remove_'),
-smalltalk.method({
-selector: unescape('remove%3A'),
-fn: function (anObject) {
-var self=this;
-
-		for(var i=0;i<self.length;i++) {
-			if(self[i] == anObject) {
-				self.splice(i,1);
-				break;
-			}
-		}
-	;
-return self;}
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_removeFrom_to_'),
-smalltalk.method({
-selector: unescape('removeFrom%3Ato%3A'),
-fn: function (aNumber, anotherNumber) {
-var self=this;
-self.splice(aNumber - 1,anotherNumber - 1);
-return self;}
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_reversed'),
-smalltalk.method({
-selector: unescape('reversed'),
-fn: function () {
-var self=this;
-return self._copy().reverse();
-return self;}
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_size'),
-smalltalk.method({
-selector: unescape('size'),
-fn: function () {
-var self=this;
-return self.length;
-return self;}
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_sort'),
-smalltalk.method({
-selector: unescape('sort'),
-fn: function () {
-var self=this;
-return smalltalk.send(self, "_basicPerform_", ["sort"]);
-return self;}
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_sort_'),
-smalltalk.method({
-selector: unescape('sort%3A'),
-fn: function (aBlock) {
-var self=this;
-
-		return self.sort(function(a, b) {
-			if(aBlock(a,b)) {return -1} else {return 1}
-		})
-	;
-return self;}
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_sorted'),
-smalltalk.method({
-selector: unescape('sorted'),
-fn: function () {
-var self=this;
-return smalltalk.send(smalltalk.send(self, "_copy", []), "_sort", []);
-return self;}
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_sorted_'),
-smalltalk.method({
-selector: unescape('sorted%3A'),
-fn: function (aBlock) {
-var self=this;
-return smalltalk.send(smalltalk.send(self, "_copy", []), "_sort_", [aBlock]);
-return self;}
-}),
-smalltalk.Array);
-
-
-smalltalk.addMethod(
-unescape('_new_'),
-smalltalk.method({
-selector: unescape('new%3A'),
-fn: function (anInteger) {
-var self=this;
-return new Array(anInteger);
-return self;}
-}),
-smalltalk.Array.klass);
-
-smalltalk.addMethod(
-unescape('_with_'),
-smalltalk.method({
-selector: unescape('with%3A'),
-fn: function (anObject) {
-var self=this;
-return (function($rec){smalltalk.send($rec, "_at_put_", [(1), anObject]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new_", [(1)]));
-return self;}
-}),
-smalltalk.Array.klass);
-
-smalltalk.addMethod(
-unescape('_with_with_'),
-smalltalk.method({
-selector: unescape('with%3Awith%3A'),
-fn: function (anObject, anObject2) {
-var self=this;
-return (function($rec){smalltalk.send($rec, "_at_put_", [(1), anObject]);smalltalk.send($rec, "_at_put_", [(2), anObject2]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new_", [(2)]));
-return self;}
-}),
-smalltalk.Array.klass);
-
-smalltalk.addMethod(
-unescape('_with_with_with_'),
-smalltalk.method({
-selector: unescape('with%3Awith%3Awith%3A'),
-fn: function (anObject, anObject2, anObject3) {
-var self=this;
-return (function($rec){smalltalk.send($rec, "_at_put_", [(1), anObject]);smalltalk.send($rec, "_at_put_", [(2), anObject2]);smalltalk.send($rec, "_at_put_", [(3), anObject3]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new_", [(3)]));
-return self;}
-}),
-smalltalk.Array.klass);
-
-smalltalk.addMethod(
-unescape('_withAll_'),
-smalltalk.method({
-selector: unescape('withAll%3A'),
-fn: function (aCollection) {
-var self=this;
-var instance=nil;
-(instance=smalltalk.send(self, "_new_", [smalltalk.send(aCollection, "_size", [])]));
-smalltalk.send(aCollection, "_withIndexDo_", [(function(each, index){return smalltalk.send(instance, "_at_put_", [index, each]);})]);
-return instance;
-return self;}
-}),
-smalltalk.Array.klass);
-
-
 smalltalk.addClass('CharacterArray', smalltalk.SequenceableCollection, [], 'Kernel-Collections');
 smalltalk.addMethod(
 unescape('__comma'),
@@ -2008,7 +1786,7 @@ smalltalk.addMethod(
 unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
-fn: function (){
+fn: function () {
 var self=this;
 return self;
 return self;}
@@ -2614,7 +2392,7 @@ smalltalk.addMethod(
 unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
-fn: function (){
+fn: function () {
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_asString", []), "_asJSON", []);
 return self;}

+ 9 - 321
js/Kernel-Collections.js

@@ -187,7 +187,7 @@ unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
 category: 'converting',
-fn: function (){
+fn: function () {
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_asArray", []), "_collect_", [(function(each){return smalltalk.send(each, "_asJSON", []);})]);
 return self;},
@@ -389,7 +389,7 @@ unescape('_ifEmpty_'),
 smalltalk.method({
 selector: unescape('ifEmpty%3A'),
 category: 'testing',
-fn: function (aBlock){
+fn: function (aBlock) {
 var self=this;
 return ((($receiver = smalltalk.send(self, "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(aBlock, "_value", []);})() : (function(){return self;})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(aBlock, "_value", []);}), (function(){return self;})]));
 return self;},
@@ -825,7 +825,7 @@ unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
 category: 'converting',
-fn: function (){
+fn: function () {
 var self=this;
 var c=nil;
 (c=smalltalk.send(smalltalk.send(self, "_class", []), "_new", []));
@@ -1165,7 +1165,7 @@ unescape('_removeKey_'),
 smalltalk.method({
 selector: unescape('removeKey%3A'),
 category: 'adding/removing',
-fn: function (aKey){
+fn: function (aKey) {
 var self=this;
 return smalltalk.send(self, "_remove_", [aKey]);
 return self;},
@@ -1323,7 +1323,7 @@ unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
 category: 'converting',
-fn: function (){
+fn: function () {
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_asHashedCollection", []), "_asJSON", []);
 return self;},
@@ -1441,7 +1441,7 @@ unescape('_removeKey_ifAbsent_'),
 smalltalk.method({
 selector: unescape('removeKey%3AifAbsent%3A'),
 category: 'adding/removing',
-fn: function (aKey, aBlock){
+fn: function (aKey, aBlock) {
 var self=this;
 
             var index = self['@keys'].indexOf(aKey);
@@ -1673,7 +1673,7 @@ unescape('_first_'),
 smalltalk.method({
 selector: unescape('first%3A'),
 category: 'accessing',
-fn: function (n){
+fn: function (n) {
 var self=this;
 return smalltalk.send(self, "_copyFrom_to_", [(1), n]);
 return self;},
@@ -2224,318 +2224,6 @@ referencedClasses: []
 smalltalk.Array.klass);
 
 
-smalltalk.addClass('Array', smalltalk.SequenceableCollection, [], 'Kernel-Collections');
-smalltalk.addMethod(
-unescape('_add_'),
-smalltalk.method({
-selector: unescape('add%3A'),
-category: 'adding/removing',
-fn: function (anObject) {
-var self=this;
-self.push(anObject); return anObject;;
-return self;},
-args: ["anObject"],
-source: unescape('add%3A%20anObject%0A%09%3Cself.push%28anObject%29%3B%20return%20anObject%3B%3E'),
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_asJavascript'),
-smalltalk.method({
-selector: unescape('asJavascript'),
-category: 'converting',
-fn: function () {
-var self=this;
-return smalltalk.send(smalltalk.send(unescape("%5B"), "__comma", [smalltalk.send(smalltalk.send(self, "_collect_", [(function(each){return smalltalk.send(each, "_asJavascript", []);})]), "_join_", [unescape("%2C%20")])]), "__comma", [unescape("%5D")]);
-return self;},
-args: [],
-source: unescape('asJavascript%0A%09%5E%27%5B%27%2C%20%28%28self%20collect%3A%20%5B%3Aeach%20%7C%20each%20asJavascript%5D%29%20join%3A%20%27%2C%20%27%29%2C%20%20%27%5D%27'),
-messageSends: [unescape("%2C"), "join:", "collect:", "asJavascript"],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_at_ifAbsent_'),
-smalltalk.method({
-selector: unescape('at%3AifAbsent%3A'),
-category: 'accessing',
-fn: function (anIndex, aBlock) {
-var self=this;
-
-	    var value = self[anIndex - 1];
-	    if(value === undefined) {
-		return aBlock();
-	    } else {
-		return value;
-	    }
-	;
-return self;},
-args: ["anIndex", "aBlock"],
-source: unescape('at%3A%20anIndex%20ifAbsent%3A%20aBlock%0A%09%3C%0A%09%20%20%20%20var%20value%20%3D%20self%5BanIndex%20-%201%5D%3B%0A%09%20%20%20%20if%28value%20%3D%3D%3D%20undefined%29%20%7B%0A%09%09return%20aBlock%28%29%3B%0A%09%20%20%20%20%7D%20else%20%7B%0A%09%09return%20value%3B%0A%09%20%20%20%20%7D%0A%09%3E'),
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_at_put_'),
-smalltalk.method({
-selector: unescape('at%3Aput%3A'),
-category: 'accessing',
-fn: function (anIndex, anObject) {
-var self=this;
-return self[anIndex - 1] = anObject;
-return self;},
-args: ["anIndex", "anObject"],
-source: unescape('at%3A%20anIndex%20put%3A%20anObject%0A%09%3Creturn%20self%5BanIndex%20-%201%5D%20%3D%20anObject%3E'),
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_join_'),
-smalltalk.method({
-selector: unescape('join%3A'),
-category: 'enumerating',
-fn: function (aString) {
-var self=this;
-return self.join(aString);
-return self;},
-args: ["aString"],
-source: unescape('join%3A%20aString%0A%09%3Creturn%20self.join%28aString%29%3E'),
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_remove_'),
-smalltalk.method({
-selector: unescape('remove%3A'),
-category: 'adding/removing',
-fn: function (anObject) {
-var self=this;
-
-		for(var i=0;i<self.length;i++) {
-			if(self[i] == anObject) {
-				self.splice(i,1);
-				break;
-			}
-		}
-	;
-return self;},
-args: ["anObject"],
-source: unescape('remove%3A%20anObject%0A%09%3C%0A%09%09for%28var%20i%3D0%3Bi%3Cself.length%3Bi++%29%20%7B%0A%09%09%09if%28self%5Bi%5D%20%3D%3D%20anObject%29%20%7B%0A%09%09%09%09self.splice%28i%2C1%29%3B%0A%09%09%09%09break%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%3E'),
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_removeFrom_to_'),
-smalltalk.method({
-selector: unescape('removeFrom%3Ato%3A'),
-category: 'adding/removing',
-fn: function (aNumber, anotherNumber) {
-var self=this;
-self.splice(aNumber - 1,anotherNumber - 1);
-return self;},
-args: ["aNumber", "anotherNumber"],
-source: unescape('removeFrom%3A%20aNumber%20to%3A%20anotherNumber%0A%09%3Cself.splice%28aNumber%20-%201%2CanotherNumber%20-%201%29%3E'),
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_reversed'),
-smalltalk.method({
-selector: unescape('reversed'),
-category: 'converting',
-fn: function () {
-var self=this;
-return self._copy().reverse();
-return self;},
-args: [],
-source: unescape('reversed%0A%09%3Creturn%20self._copy%28%29.reverse%28%29%3E'),
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_size'),
-smalltalk.method({
-selector: unescape('size'),
-category: 'accessing',
-fn: function () {
-var self=this;
-return self.length;
-return self;},
-args: [],
-source: unescape('size%0A%09%3Creturn%20self.length%3E'),
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_sort'),
-smalltalk.method({
-selector: unescape('sort'),
-category: 'enumerating',
-fn: function () {
-var self=this;
-return smalltalk.send(self, "_basicPerform_", ["sort"]);
-return self;},
-args: [],
-source: unescape('sort%0A%20%20%20%20%5Eself%20basicPerform%3A%20%27sort%27'),
-messageSends: ["basicPerform:"],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_sort_'),
-smalltalk.method({
-selector: unescape('sort%3A'),
-category: 'enumerating',
-fn: function (aBlock) {
-var self=this;
-
-		return self.sort(function(a, b) {
-			if(aBlock(a,b)) {return -1} else {return 1}
-		})
-	;
-return self;},
-args: ["aBlock"],
-source: unescape('sort%3A%20aBlock%0A%09%3C%0A%09%09return%20self.sort%28function%28a%2C%20b%29%20%7B%0A%09%09%09if%28aBlock%28a%2Cb%29%29%20%7Breturn%20-1%7D%20else%20%7Breturn%201%7D%0A%09%09%7D%29%0A%09%3E'),
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_sorted'),
-smalltalk.method({
-selector: unescape('sorted'),
-category: 'enumerating',
-fn: function () {
-var self=this;
-return smalltalk.send(smalltalk.send(self, "_copy", []), "_sort", []);
-return self;},
-args: [],
-source: unescape('sorted%0A%09%5Eself%20copy%20sort'),
-messageSends: ["sort", "copy"],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-smalltalk.addMethod(
-unescape('_sorted_'),
-smalltalk.method({
-selector: unescape('sorted%3A'),
-category: 'enumerating',
-fn: function (aBlock) {
-var self=this;
-return smalltalk.send(smalltalk.send(self, "_copy", []), "_sort_", [aBlock]);
-return self;},
-args: ["aBlock"],
-source: unescape('sorted%3A%20aBlock%0A%09%5Eself%20copy%20sort%3A%20aBlock'),
-messageSends: ["sort:", "copy"],
-referencedClasses: []
-}),
-smalltalk.Array);
-
-
-smalltalk.addMethod(
-unescape('_new_'),
-smalltalk.method({
-selector: unescape('new%3A'),
-category: 'instance creation',
-fn: function (anInteger) {
-var self=this;
-return new Array(anInteger);
-return self;},
-args: ["anInteger"],
-source: unescape('new%3A%20anInteger%0A%09%3Creturn%20new%20Array%28anInteger%29%3E'),
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.Array.klass);
-
-smalltalk.addMethod(
-unescape('_with_'),
-smalltalk.method({
-selector: unescape('with%3A'),
-category: 'instance creation',
-fn: function (anObject) {
-var self=this;
-return (function($rec){smalltalk.send($rec, "_at_put_", [(1), anObject]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new_", [(1)]));
-return self;},
-args: ["anObject"],
-source: unescape('with%3A%20anObject%0A%09%20%20%20%20%5E%28self%20new%3A%201%29%0A%09%09at%3A%201%20put%3A%20anObject%3B%0A%09%09yourself'),
-messageSends: ["at:put:", "yourself", "new:"],
-referencedClasses: []
-}),
-smalltalk.Array.klass);
-
-smalltalk.addMethod(
-unescape('_with_with_'),
-smalltalk.method({
-selector: unescape('with%3Awith%3A'),
-category: 'instance creation',
-fn: function (anObject, anObject2) {
-var self=this;
-return (function($rec){smalltalk.send($rec, "_at_put_", [(1), anObject]);smalltalk.send($rec, "_at_put_", [(2), anObject2]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new_", [(2)]));
-return self;},
-args: ["anObject", "anObject2"],
-source: unescape('with%3A%20anObject%20with%3A%20anObject2%0A%09%20%20%20%20%5E%28self%20new%3A%202%29%0A%09%09at%3A%201%20put%3A%20anObject%3B%0A%09%09at%3A%202%20put%3A%20anObject2%3B%0A%09%09yourself'),
-messageSends: ["at:put:", "yourself", "new:"],
-referencedClasses: []
-}),
-smalltalk.Array.klass);
-
-smalltalk.addMethod(
-unescape('_with_with_with_'),
-smalltalk.method({
-selector: unescape('with%3Awith%3Awith%3A'),
-category: 'instance creation',
-fn: function (anObject, anObject2, anObject3) {
-var self=this;
-return (function($rec){smalltalk.send($rec, "_at_put_", [(1), anObject]);smalltalk.send($rec, "_at_put_", [(2), anObject2]);smalltalk.send($rec, "_at_put_", [(3), anObject3]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new_", [(3)]));
-return self;},
-args: ["anObject", "anObject2", "anObject3"],
-source: unescape('with%3A%20anObject%20with%3A%20anObject2%20with%3A%20anObject3%0A%09%20%20%20%20%5E%28self%20new%3A%203%29%0A%09%09at%3A%201%20put%3A%20anObject%3B%0A%09%09at%3A%202%20put%3A%20anObject2%3B%0A%09%09at%3A%203%20put%3A%20anObject3%3B%0A%09%09yourself'),
-messageSends: ["at:put:", "yourself", "new:"],
-referencedClasses: []
-}),
-smalltalk.Array.klass);
-
-smalltalk.addMethod(
-unescape('_withAll_'),
-smalltalk.method({
-selector: unescape('withAll%3A'),
-category: 'instance creation',
-fn: function (aCollection) {
-var self=this;
-var instance=nil;
-(instance=smalltalk.send(self, "_new_", [smalltalk.send(aCollection, "_size", [])]));
-smalltalk.send(aCollection, "_withIndexDo_", [(function(each, index){return smalltalk.send(instance, "_at_put_", [index, each]);})]);
-return instance;
-return self;},
-args: ["aCollection"],
-source: unescape('withAll%3A%20aCollection%0A%09%7C%20instance%20%7C%0A%09instance%20%3A%3D%20self%20new%3A%20aCollection%20size.%0A%09aCollection%20withIndexDo%3A%20%5B%3Aeach%20%3Aindex%20%20%7C%0A%09%09instance%20at%3A%20index%20put%3A%20each%5D.%0A%09%5Einstance'),
-messageSends: ["new:", "size", "withIndexDo:", "at:put:"],
-referencedClasses: []
-}),
-smalltalk.Array.klass);
-
-
 smalltalk.addClass('CharacterArray', smalltalk.SequenceableCollection, [], 'Kernel-Collections');
 smalltalk.addMethod(
 unescape('__comma'),
@@ -2835,7 +2523,7 @@ unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
 category: 'converting',
-fn: function (){
+fn: function () {
 var self=this;
 return self;
 return self;},
@@ -3696,7 +3384,7 @@ unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
 category: 'converting',
-fn: function (){
+fn: function () {
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_asString", []), "_asJSON", []);
 return self;},

+ 8 - 494
js/Kernel-Objects.deploy.js

@@ -40,7 +40,7 @@ smalltalk.addMethod(
 unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
-fn: function (){
+fn: function () {
 var self=this;
 var variables=nil;
 (variables=smalltalk.send((smalltalk.HashedCollection || HashedCollection), "_new", []));
@@ -54,7 +54,7 @@ smalltalk.addMethod(
 unescape('_asJSONString'),
 smalltalk.method({
 selector: unescape('asJSONString'),
-fn: function (){
+fn: function () {
 var self=this;
 return smalltalk.send((smalltalk.JSON || JSON), "_stringify_", [smalltalk.send(self, "_asJSON", [])]);
 return self;}
@@ -725,7 +725,7 @@ smalltalk.addMethod(
 unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
-fn: function (){
+fn: function () {
 var self=this;
 return self;
 return self;}
@@ -1348,492 +1348,6 @@ fn: function () {
 smalltalk.Date.klass);
 
 
-smalltalk.addClass('Date', smalltalk.Object, [], 'Kernel-Objects');
-smalltalk.addMethod(
-unescape('__plus'),
-smalltalk.method({
-selector: unescape('+'),
-fn: function (aDate) {
-    var self = this;
-    return self + aDate;
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('__minus'),
-smalltalk.method({
-selector: unescape('-'),
-fn: function (aDate) {
-    var self = this;
-    return self - aDate;
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('__lt'),
-smalltalk.method({
-selector: unescape('%3C'),
-fn: function (aDate) {
-    var self = this;
-    return self < aDate;
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('__lt_eq'),
-smalltalk.method({
-selector: unescape('%3C%3D'),
-fn: function (aDate) {
-    var self = this;
-    return self <= aDate;
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('__gt'),
-smalltalk.method({
-selector: unescape('%3E'),
-fn: function (aDate) {
-    var self = this;
-    return self > aDate;
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('__gt_eq'),
-smalltalk.method({
-selector: unescape('%3E%3D'),
-fn: function (aDate) {
-    var self = this;
-    return self >= aDate;
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_asDateString'),
-smalltalk.method({
-selector: unescape('asDateString'),
-fn: function () {
-    var self = this;
-    return self.toDateString();
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_asLocaleString'),
-smalltalk.method({
-selector: unescape('asLocaleString'),
-fn: function () {
-    var self = this;
-    return self.toLocaleString();
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_asMilliseconds'),
-smalltalk.method({
-selector: unescape('asMilliseconds'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_time", []);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_asNumber'),
-smalltalk.method({
-selector: unescape('asNumber'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_asMilliseconds", []);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_asString'),
-smalltalk.method({
-selector: unescape('asString'),
-fn: function () {
-    var self = this;
-    return self.toString();
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_asTimeString'),
-smalltalk.method({
-selector: unescape('asTimeString'),
-fn: function () {
-    var self = this;
-    return self.toTimeString();
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_day'),
-smalltalk.method({
-selector: unescape('day'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_dayOfWeek", []);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_day_'),
-smalltalk.method({
-selector: unescape('day%3A'),
-fn: function (aNumber) {
-    var self = this;
-    smalltalk.send(self, "_day_", [aNumber]);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_dayOfMonth'),
-smalltalk.method({
-selector: unescape('dayOfMonth'),
-fn: function () {
-    var self = this;
-    return self.getDate();
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_dayOfMonth_'),
-smalltalk.method({
-selector: unescape('dayOfMonth%3A'),
-fn: function (aNumber) {
-    var self = this;
-    self.setDate(aNumber);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_dayOfWeek'),
-smalltalk.method({
-selector: unescape('dayOfWeek'),
-fn: function () {
-    var self = this;
-    return self.getDay() + 1;
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_dayOfWeek_'),
-smalltalk.method({
-selector: unescape('dayOfWeek%3A'),
-fn: function (aNumber) {
-    var self = this;
-    return self.setDay(aNumber - 1);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_hours'),
-smalltalk.method({
-selector: unescape('hours'),
-fn: function () {
-    var self = this;
-    return self.getHours();
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_hours_'),
-smalltalk.method({
-selector: unescape('hours%3A'),
-fn: function (aNumber) {
-    var self = this;
-    self.setHours(aNumber);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_milliseconds'),
-smalltalk.method({
-selector: unescape('milliseconds'),
-fn: function () {
-    var self = this;
-    return self.getMilliseconds();
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_milliseconds_'),
-smalltalk.method({
-selector: unescape('milliseconds%3A'),
-fn: function (aNumber) {
-    var self = this;
-    self.setMilliseconds(aNumber);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_minutes'),
-smalltalk.method({
-selector: unescape('minutes'),
-fn: function () {
-    var self = this;
-    return self.getMinutes();
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_minutes_'),
-smalltalk.method({
-selector: unescape('minutes%3A'),
-fn: function (aNumber) {
-    var self = this;
-    self.setMinutes(aNumber);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_month'),
-smalltalk.method({
-selector: unescape('month'),
-fn: function () {
-    var self = this;
-    return self.getMonth() + 1;
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_month_'),
-smalltalk.method({
-selector: unescape('month%3A'),
-fn: function (aNumber) {
-    var self = this;
-    self.setMonth(aNumber - 1);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_printString'),
-smalltalk.method({
-selector: unescape('printString'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_asString", []);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_seconds'),
-smalltalk.method({
-selector: unescape('seconds'),
-fn: function () {
-    var self = this;
-    return self.getSeconds();
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_seconds_'),
-smalltalk.method({
-selector: unescape('seconds%3A'),
-fn: function (aNumber) {
-    var self = this;
-    self.setSeconds(aNumber);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_time'),
-smalltalk.method({
-selector: unescape('time'),
-fn: function () {
-    var self = this;
-    return self.getTime();
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_time_'),
-smalltalk.method({
-selector: unescape('time%3A'),
-fn: function (aNumber) {
-    var self = this;
-    self.setTime(aNumber);
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_year'),
-smalltalk.method({
-selector: unescape('year'),
-fn: function () {
-    var self = this;
-    return self.getFullYear();
-    return self;
-}
-}),
-smalltalk.Date);
-
-smalltalk.addMethod(
-unescape('_year_'),
-smalltalk.method({
-selector: unescape('year%3A'),
-fn: function (aNumber) {
-    var self = this;
-    self.setFullYear(aNumber);
-    return self;
-}
-}),
-smalltalk.Date);
-
-
-smalltalk.addMethod(
-unescape('_fromMilliseconds_'),
-smalltalk.method({
-selector: unescape('fromMilliseconds%3A'),
-fn: function (aNumber) {
-    var self = this;
-    return smalltalk.send(self, "_new_", [aNumber]);
-    return self;
-}
-}),
-smalltalk.Date.klass);
-
-smalltalk.addMethod(
-unescape('_fromSeconds_'),
-smalltalk.method({
-selector: unescape('fromSeconds%3A'),
-fn: function (aNumber) {
-    var self = this;
-    return smalltalk.send(self, "_fromMilliseconds_", [($receiver = aNumber).klass === smalltalk.Number ? $receiver * 1000 : smalltalk.send($receiver, "__star", [1000])]);
-    return self;
-}
-}),
-smalltalk.Date.klass);
-
-smalltalk.addMethod(
-unescape('_fromString_'),
-smalltalk.method({
-selector: unescape('fromString%3A'),
-fn: function (aString) {
-    var self = this;
-    return smalltalk.send(self, "_new_", [aString]);
-    return self;
-}
-}),
-smalltalk.Date.klass);
-
-smalltalk.addMethod(
-unescape('_millisecondsToRun_'),
-smalltalk.method({
-selector: unescape('millisecondsToRun%3A'),
-fn: function (aBlock) {
-    var self = this;
-    var t = nil;
-    t = smalltalk.send(smalltalk.Date || Date, "_now", []);
-    smalltalk.send(aBlock, "_value", []);
-    return ($receiver = smalltalk.send(smalltalk.Date || Date, "_now", [])).klass === smalltalk.Number ? $receiver - t : smalltalk.send($receiver, "__minus", [t]);
-    return self;
-}
-}),
-smalltalk.Date.klass);
-
-smalltalk.addMethod(
-unescape('_new_'),
-smalltalk.method({
-selector: unescape('new%3A'),
-fn: function (anObject) {
-    var self = this;
-    return new Date(anObject);
-    return self;
-}
-}),
-smalltalk.Date.klass);
-
-smalltalk.addMethod(
-unescape('_now'),
-smalltalk.method({
-selector: unescape('now'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_today", []);
-    return self;
-}
-}),
-smalltalk.Date.klass);
-
-smalltalk.addMethod(
-unescape('_today'),
-smalltalk.method({
-selector: unescape('today'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_new", []);
-    return self;
-}
-}),
-smalltalk.Date.klass);
-
-
 smalltalk.addClass('JSObjectProxy', smalltalk.Object, ['jsObject'], 'Kernel-Objects');
 smalltalk.addMethod(
 unescape('_at_'),
@@ -2100,7 +1614,7 @@ smalltalk.addMethod(
 unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
-fn: function (){
+fn: function () {
 var self=this;
 return self;
 return self;}
@@ -2724,7 +2238,7 @@ smalltalk.addMethod(
 unescape('_sortedClasses'),
 smalltalk.method({
 selector: unescape('sortedClasses'),
-fn: function (){
+fn: function () {
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_class", []), "_sortedClasses_", [smalltalk.send(self, "_classes", [])]);
 return self;}
@@ -2876,7 +2390,7 @@ smalltalk.addMethod(
 unescape('_sortedClasses_'),
 smalltalk.method({
 selector: unescape('sortedClasses%3A'),
-fn: function (classes){
+fn: function (classes) {
 var self=this;
 var children=nil;
 var others=nil;
@@ -2984,7 +2498,7 @@ smalltalk.addMethod(
 unescape('_translateBy_'),
 smalltalk.method({
 selector: unescape('translateBy%3A'),
-fn: function (delta){
+fn: function (delta) {
 var self=this;
 return smalltalk.send(((($receiver = smalltalk.send(delta, "_x", [])).klass === smalltalk.Number) ? $receiver +self['@x'] : smalltalk.send($receiver, "__plus", [self['@x']])), "__at", [((($receiver = smalltalk.send(delta, "_y", [])).klass === smalltalk.Number) ? $receiver +self['@y'] : smalltalk.send($receiver, "__plus", [self['@y']]))]);
 return self;}
@@ -3338,7 +2852,7 @@ smalltalk.addMethod(
 unescape('_asJSON'),
 smalltalk.method({
 selector: unescape('asJSON'),
-fn: function (){
+fn: function () {
 var self=this;
 return (typeof null == 'undefined' ? nil : null);
 return self;}

File diff suppressed because it is too large
+ 137 - 824
js/Kernel-Objects.js


+ 4 - 2
st/Compiler.st

@@ -75,8 +75,10 @@ exportPackage: packageName
 	^String streamContents: [:stream |
                 package := Smalltalk current packageAt: packageName.
                 self exportPackageDefinitionOf: package on: stream.
-		"Export classes in dependency order"
-	    	package sortedClasses do: [:each |
+
+		"Export classes in dependency order.
+		Update (issue #171): Remove duplicates for export"
+	    	package sortedClasses asSet do: [:each |
                         stream nextPutAll: (self exportClass: each)].
 		self exportPackageExtensionsOf: package on: stream]
 ! !

+ 0 - 117
st/Kernel-Collections.st

@@ -847,123 +847,6 @@ withAll: aCollection
 	^instance
 ! !
 
-SequenceableCollection subclass: #Array
-	instanceVariableNames: ''
-	package: 'Kernel-Collections'!
-
-!Array methodsFor: 'accessing'!
-
-at: anIndex ifAbsent: aBlock
-	<
-	    var value = self[anIndex - 1];
-	    if(value === undefined) {
-		return aBlock();
-	    } else {
-		return value;
-	    }
-	>
-!
-
-at: anIndex put: anObject
-	<return self[anIndex - 1] = anObject>
-!
-
-size
-	<return self.length>
-! !
-
-!Array methodsFor: 'adding/removing'!
-
-add: anObject
-	<self.push(anObject); return anObject;>
-!
-
-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)>
-! !
-
-!Array methodsFor: 'converting'!
-
-asJavascript
-	^'[', ((self collect: [:each | each asJavascript]) join: ', '),  ']'
-!
-
-reversed
-	<return self._copy().reverse()>
-! !
-
-!Array methodsFor: 'enumerating'!
-
-join: aString
-	<return self.join(aString)>
-!
-
-sort
-    ^self basicPerform: 'sort'
-!
-
-sort: aBlock
-	<
-		return self.sort(function(a, b) {
-			if(aBlock(a,b)) {return -1} else {return 1}
-		})
-	>
-!
-
-sorted
-	^self copy sort
-!
-
-sorted: aBlock
-	^self copy sort: aBlock
-! !
-
-!Array class methodsFor: 'instance creation'!
-
-new: anInteger
-	<return new Array(anInteger)>
-!
-
-with: anObject
-	    ^(self new: 1)
-		at: 1 put: anObject;
-		yourself
-!
-
-with: anObject with: anObject2
-	    ^(self new: 2)
-		at: 1 put: anObject;
-		at: 2 put: anObject2;
-		yourself
-!
-
-with: anObject with: anObject2 with: anObject3
-	    ^(self new: 3)
-		at: 1 put: anObject;
-		at: 2 put: anObject2;
-		at: 3 put: anObject3;
-		yourself
-!
-
-withAll: aCollection
-	| instance |
-	instance := self new: aCollection size.
-	aCollection withIndexDo: [:each :index  |
-		instance at: index put: each].
-	^instance
-! !
-
 SequenceableCollection subclass: #CharacterArray
 	instanceVariableNames: ''
 	package: 'Kernel-Collections'!

+ 1 - 186
st/Kernel-Objects.st

@@ -603,191 +603,6 @@ today
 	^self new
 ! !
 
-Object subclass: #Date
-	instanceVariableNames: ''
-	package: 'Kernel-Objects'!
-!Date commentStamp!
-The Date class is used to work with dates and times. Therefore `Date today` and `Date now` are both valid in
-Amber and answer the same date object.
-
-Date wraps the `Date()` JavaScript constructor, and Smalltalk date objects are JavaScript date objects.!
-
-!Date methodsFor: 'accessing'!
-
-day
-	^self dayOfWeek
-!
-
-day: aNumber
-	self day: aNumber
-!
-
-dayOfMonth
-	<return self.getDate()>
-!
-
-dayOfMonth: aNumber
-	<self.setDate(aNumber)>
-!
-
-dayOfWeek
-	<return self.getDay() + 1>
-!
-
-dayOfWeek: aNumber
-	<return self.setDay(aNumber - 1)>
-!
-
-hours
-	<return self.getHours()>
-!
-
-hours: aNumber
-	<self.setHours(aNumber)>
-!
-
-milliseconds
-	<return self.getMilliseconds()>
-!
-
-milliseconds: aNumber
-	<self.setMilliseconds(aNumber)>
-!
-
-minutes
-	<return self.getMinutes()>
-!
-
-minutes: aNumber
-	<self.setMinutes(aNumber)>
-!
-
-month
-	<return self.getMonth() + 1>
-!
-
-month: aNumber
-	<self.setMonth(aNumber - 1)>
-!
-
-seconds
-	<return self.getSeconds()>
-!
-
-seconds: aNumber
-	<self.setSeconds(aNumber)>
-!
-
-time
-	<return self.getTime()>
-!
-
-time: aNumber
-	<self.setTime(aNumber)>
-!
-
-year
-	<return self.getFullYear()>
-!
-
-year: aNumber
-	<self.setFullYear(aNumber)>
-! !
-
-!Date methodsFor: 'arithmetic'!
-
-+ aDate
-	<return self + aDate>
-!
-
-- aDate
-	<return self - aDate>
-! !
-
-!Date methodsFor: 'comparing'!
-
-< aDate
-	<return self < aDate>
-!
-
-<= aDate
-	<return self <= aDate>
-!
-
-> aDate
-	<return self >> aDate>
-!
-
->= aDate
-	<return self >>= aDate>
-! !
-
-!Date methodsFor: 'converting'!
-
-asDateString
-	<return self.toDateString()>
-!
-
-asLocaleString
-	<return self.toLocaleString()>
-!
-
-asMilliseconds
-	^self time
-!
-
-asNumber
-	^self asMilliseconds
-!
-
-asString
-	<return self.toString()>
-!
-
-asTimeString
-	<return self.toTimeString()>
-! !
-
-!Date methodsFor: 'printing'!
-
-printString
-	^self asString
-! !
-
-!Date class methodsFor: 'instance creation'!
-
-fromMilliseconds: aNumber
-	^self new: aNumber
-!
-
-fromSeconds: aNumber
-	^self fromMilliseconds: aNumber * 1000
-!
-
-fromString: aString
-	"Example: Date fromString('2011/04/15 00:00:00')"
-	^self new: aString
-!
-
-millisecondsToRun: aBlock
-	| t |
-	t := Date now.
-	aBlock value.
-	^Date now - t
-!
-
-new: anObject
-	<return new Date(anObject)>
-!
-
-now
-	^self today
-!
-
-today
-	^self new
-! !
-
 Object subclass: #JSObjectProxy
 	instanceVariableNames: 'jsObject'
 	package: 'Kernel-Objects'!
@@ -1219,7 +1034,7 @@ classes
 !
 
 sortedClasses
-	"Answer all classes in the receiver, sorted by superclass/subclasses and by class name for common subclasses (Issue #143)"
+	"Answer all classes in the receiver, sorted by superclass/subclasses and by class name for common subclasses (Issue #143)."
 
 	^self class sortedClasses: self classes
 ! !

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