2
0
Kaynağa Gözat

- Renamed AbstractCompiler >> loadExpression: to #evaluateExpression:
- make && make install in st/

Nicolas Petton 12 yıl önce
ebeveyn
işleme
afd7523ef3

+ 17 - 17
js/Benchfib.deploy.js

@@ -2,23 +2,23 @@ smalltalk.addPackage('Benchfib', {});
 smalltalk.addClass('Benchfib', smalltalk.Object, [], 'Benchfib');
 
 smalltalk.addMethod(
-unescape('_main'),
+"_main",
 smalltalk.method({
-selector: unescape('main'),
+selector: "main",
 fn: function (){
 var self=this;
 var result=nil;
 (result=smalltalk.send((0), "_tinyBenchmarks", []));
-smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [smalltalk.send(unescape("0%20tinyBenchmarks%20%3D%3E%20"), "__comma", [result])]);
+smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [smalltalk.send("0 tinyBenchmarks => ", "__comma", [result])]);
 return self;}
 }),
 smalltalk.Benchfib.klass);
 
 
 smalltalk.addMethod(
-unescape('_benchFib'),
+"_benchFib",
 smalltalk.method({
-selector: unescape('benchFib'),
+selector: "benchFib",
 fn: function (){
 var self=this;
 return ((($receiver = self < (2)).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (1);})() : (function(){return ((($receiver = ((($receiver = smalltalk.send(self - (1), "_benchFib", [])).klass === smalltalk.Number) ? $receiver +smalltalk.send(self - (2), "_benchFib", []) : smalltalk.send($receiver, "__plus", [smalltalk.send(self - (2), "_benchFib", [])]))).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (1);}), (function(){return ((($receiver = ((($receiver = smalltalk.send(self - (1), "_benchFib", [])).klass === smalltalk.Number) ? $receiver +smalltalk.send(self - (2), "_benchFib", []) : smalltalk.send($receiver, "__plus", [smalltalk.send(self - (2), "_benchFib", [])]))).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]));
@@ -27,9 +27,9 @@ return self;}
 smalltalk.Number);
 
 smalltalk.addMethod(
-unescape('_benchmark'),
+"_benchmark",
 smalltalk.method({
-selector: unescape('benchmark'),
+selector: "benchmark",
 fn: function (){
 var self=this;
 var size=nil;
@@ -45,9 +45,9 @@ return self;}
 smalltalk.Number);
 
 smalltalk.addMethod(
-unescape('_jsbenchFib'),
+"_jsbenchFib",
 smalltalk.method({
-selector: unescape('jsbenchFib'),
+selector: "jsbenchFib",
 fn: function (){
 var self=this;
 if (this < 2) {
@@ -59,9 +59,9 @@ return self;}
 smalltalk.Number);
 
 smalltalk.addMethod(
-unescape('_jsbenchmark'),
+"_jsbenchmark",
 smalltalk.method({
-selector: unescape('jsbenchmark'),
+selector: "jsbenchmark",
 fn: function (){
 var self=this;
 
@@ -91,9 +91,9 @@ return self;}
 smalltalk.Number);
 
 smalltalk.addMethod(
-unescape('_jstinyBenchmarks'),
+"_jstinyBenchmarks",
 smalltalk.method({
-selector: unescape('jstinyBenchmarks'),
+selector: "jstinyBenchmarks",
 fn: function (){
 var self=this;
 var t1=nil;
@@ -105,15 +105,15 @@ var n2=nil;
 (function(){while((function(){(t1=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return smalltalk.send(n1, "_jsbenchmark", []);})]));return ((($receiver = t1).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n1=((($receiver = n1).klass === smalltalk.Number) ? $receiver *(2) : smalltalk.send($receiver, "__star", [(2)])));})()}})();
 (n2=(28));
 (function(){while((function(){(t2=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return (r=smalltalk.send(n2, "_jsbenchFib", []));})]));return ((($receiver = t2).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n2=((($receiver = n2).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
-return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [unescape("%20bytecodes/sec%3B%20")]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [unescape("%20sends/sec")]);
+return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [" bytecodes/sec; "]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [" sends/sec"]);
 return self;}
 }),
 smalltalk.Number);
 
 smalltalk.addMethod(
-unescape('_tinyBenchmarks'),
+"_tinyBenchmarks",
 smalltalk.method({
-selector: unescape('tinyBenchmarks'),
+selector: "tinyBenchmarks",
 fn: function (){
 var self=this;
 var t1=nil;
@@ -125,7 +125,7 @@ var n2=nil;
 (function(){while((function(){(t1=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return smalltalk.send(n1, "_benchmark", []);})]));return ((($receiver = t1).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n1=((($receiver = n1).klass === smalltalk.Number) ? $receiver *(2) : smalltalk.send($receiver, "__star", [(2)])));})()}})();
 (n2=(16));
 (function(){while((function(){(t2=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return (r=smalltalk.send(n2, "_benchFib", []));})]));return ((($receiver = t2).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n2=((($receiver = n2).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
-return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [unescape("%20bytecodes/sec%3B%20")]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [unescape("%20sends/sec")]);
+return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [" bytecodes/sec; "]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [" sends/sec"]);
 return self;}
 }),
 smalltalk.Number);

+ 29 - 29
js/Benchfib.js

@@ -2,44 +2,44 @@ smalltalk.addPackage('Benchfib', {});
 smalltalk.addClass('Benchfib', smalltalk.Object, [], 'Benchfib');
 
 smalltalk.addMethod(
-unescape('_main'),
+"_main",
 smalltalk.method({
-selector: unescape('main'),
+selector: "main",
 category: 'not yet classified',
 fn: function (){
 var self=this;
 var result=nil;
 (result=smalltalk.send((0), "_tinyBenchmarks", []));
-smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [smalltalk.send(unescape("0%20tinyBenchmarks%20%3D%3E%20"), "__comma", [result])]);
+smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [smalltalk.send("0 tinyBenchmarks => ", "__comma", [result])]);
 return self;},
 args: [],
-source: unescape('main%0A%0A%09%7C%20result%20%7C%0A%09result%20%3A%3D%200%20tinyBenchmarks.%0A%09console%20log%3A%20%270%20tinyBenchmarks%20%3D%3E%20%27%20%2C%20result'),
-messageSends: ["tinyBenchmarks", "log:", unescape("%2C")],
+source: "main\x0a\x0a\x09| result |\x0a\x09result := 0 tinyBenchmarks.\x0a\x09console log: '0 tinyBenchmarks => ' , result",
+messageSends: ["tinyBenchmarks", "log:", ","],
 referencedClasses: []
 }),
 smalltalk.Benchfib.klass);
 
 
 smalltalk.addMethod(
-unescape('_benchFib'),
+"_benchFib",
 smalltalk.method({
-selector: unescape('benchFib'),
+selector: "benchFib",
 category: '*Benchfib',
 fn: function (){
 var self=this;
 return ((($receiver = self < (2)).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (1);})() : (function(){return ((($receiver = ((($receiver = smalltalk.send(self - (1), "_benchFib", [])).klass === smalltalk.Number) ? $receiver +smalltalk.send(self - (2), "_benchFib", []) : smalltalk.send($receiver, "__plus", [smalltalk.send(self - (2), "_benchFib", [])]))).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (1);}), (function(){return ((($receiver = ((($receiver = smalltalk.send(self - (1), "_benchFib", [])).klass === smalltalk.Number) ? $receiver +smalltalk.send(self - (2), "_benchFib", []) : smalltalk.send($receiver, "__plus", [smalltalk.send(self - (2), "_benchFib", [])]))).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]));
 return self;},
 args: [],
-source: unescape('benchFib%20%0A%09%22Handy%20send-heavy%20benchmark%22%0A%09%22%28result%20//%20seconds%20to%20run%29%20%3D%20approx%20calls%20per%20second%22%0A%09%22%20%7C%20r%20t%20%7C%0A%09%20%20t%20%3A%3D%20Time%20millisecondsToRun%3A%20%5Br%20%3A%3D%2026%20benchFib%5D.%0A%09%20%20%28r%20*%201000%29%20//%20t%22%0A%09%22138000%20on%20a%20Mac%208100/100%22%0A%09%5E%20self%20%3C%202%20%0A%09%09ifTrue%3A%20%5B1%5D%20%0A%09%09ifFalse%3A%20%5B%28self-1%29%20benchFib%20+%20%28self-2%29%20benchFib%20+%201%5D'),
-messageSends: ["ifTrue:ifFalse:", unescape("%3C"), unescape("+"), "benchFib", unescape("-")],
+source: "benchFib \x0a\x09\x22Handy send-heavy benchmark\x22\x0a\x09\x22(result // seconds to run) = approx calls per second\x22\x0a\x09\x22 | r t |\x0a\x09  t := Time millisecondsToRun: [r := 26 benchFib].\x0a\x09  (r * 1000) // t\x22\x0a\x09\x22138000 on a Mac 8100/100\x22\x0a\x09^ self < 2 \x0a\x09\x09ifTrue: [1] \x0a\x09\x09ifFalse: [(self-1) benchFib + (self-2) benchFib + 1]",
+messageSends: ["ifTrue:ifFalse:", "<", "+", "benchFib", "-"],
 referencedClasses: []
 }),
 smalltalk.Number);
 
 smalltalk.addMethod(
-unescape('_benchmark'),
+"_benchmark",
 smalltalk.method({
-selector: unescape('benchmark'),
+selector: "benchmark",
 category: '*Benchfib',
 fn: function (){
 var self=this;
@@ -53,16 +53,16 @@ smalltalk.send((1), "_to_do_", [self, (function(iter){(count=(0));(flags=smallta
 return count;
 return self;},
 args: [],
-source: unescape('benchmark%20%0A%09%22Handy%20bytecode-heavy%20benchmark%22%0A%09%22%28500000%20//%20time%20to%20run%29%20%3D%20approx%20bytecodes%20per%20second%22%0A%09%225000000%20//%20%28Time%20millisecondsToRun%3A%20%5B10%20benchmark%5D%29%20*%201000%22%0A%09%223059000%20on%20a%20Mac%208100/100%22%0A%20%20%20%20%7C%20size%20flags%20prime%20k%20count%20%7C%0A%20%20%20%20size%20%3A%3D%208190.%0A%20%20%20%201%20to%3A%20self%20do%3A%0A%20%20%20%20%20%20%20%20%5B%3Aiter%20%7C%0A%20%20%20%20%20%20%20%20count%20%3A%3D%200.%0A%20%20%20%20%20%20%20%20flags%20%3A%3D%20Array%20new.%0A%20%20%20%20%20%20%20%20size%20timesRepeat%3A%20%5B%20flags%20add%3A%20true%5D.%0A%20%20%20%20%20%20%20%201%20to%3A%20size%20do%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%3Ai%20%7C%20%28flags%20at%3A%20i%29%20ifTrue%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bprime%20%3A%3D%20i+1.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20k%20%3A%3D%20i%20+%20prime.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bk%20%3C%3D%20size%5D%20whileTrue%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Bflags%20at%3A%20k%20put%3A%20false.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20k%20%3A%3D%20k%20+%20prime%5D.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20count%20%3A%3D%20count%20+%201%5D%5D%5D.%0A%20%20%20%20%5E%20count'),
-messageSends: ["to:do:", "new", "timesRepeat:", "add:", "ifTrue:", "at:", unescape("+"), "whileTrue:", unescape("%3C%3D"), "at:put:"],
+source: "benchmark \x0a\x09\x22Handy bytecode-heavy benchmark\x22\x0a\x09\x22(500000 // time to run) = approx bytecodes per second\x22\x0a\x09\x225000000 // (Time millisecondsToRun: [10 benchmark]) * 1000\x22\x0a\x09\x223059000 on a Mac 8100/100\x22\x0a    | size flags prime k count |\x0a    size := 8190.\x0a    1 to: self do:\x0a        [:iter |\x0a        count := 0.\x0a        flags := Array new.\x0a        size timesRepeat: [ flags add: true].\x0a        1 to: size do:\x0a            [:i | (flags at: i) ifTrue:\x0a                [prime := i+1.\x0a                k := i + prime.\x0a                [k <= size] whileTrue:\x0a                    [flags at: k put: false.\x0a                    k := k + prime].\x0a                count := count + 1]]].\x0a    ^ count",
+messageSends: ["to:do:", "new", "timesRepeat:", "add:", "ifTrue:", "at:", "+", "whileTrue:", "<=", "at:put:"],
 referencedClasses: ["Array"]
 }),
 smalltalk.Number);
 
 smalltalk.addMethod(
-unescape('_jsbenchFib'),
+"_jsbenchFib",
 smalltalk.method({
-selector: unescape('jsbenchFib'),
+selector: "jsbenchFib",
 category: '*Benchfib',
 fn: function (){
 var self=this;
@@ -72,16 +72,16 @@ return 1;
 return (this-1)._jsbenchFib() + (this-2)._jsbenchFib() + 1;};
 return self;},
 args: [],
-source: unescape('jsbenchFib%0A%20%0A%09%3Cif%20%28this%20%3C%202%29%20%7B%0Areturn%201%3B%0A%7D%20else%20%7B%0Areturn%20%28this-1%29._jsbenchFib%28%29%20+%20%28this-2%29._jsbenchFib%28%29%20+%201%3B%7D%3E'),
+source: "jsbenchFib\x0a \x0a\x09<if (this < 2) {\x0areturn 1;\x0a} else {\x0areturn (this-1)._jsbenchFib() + (this-2)._jsbenchFib() + 1;}>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.Number);
 
 smalltalk.addMethod(
-unescape('_jsbenchmark'),
+"_jsbenchmark",
 smalltalk.method({
-selector: unescape('jsbenchmark'),
+selector: "jsbenchmark",
 category: '*Benchfib',
 fn: function (){
 var self=this;
@@ -109,16 +109,16 @@ for (var z=0;z<this;z++) {
 return count;
 return self;},
 args: [],
-source: unescape('jsbenchmark%0A%0A%3C%0Avar%20size%20%3D%208190%3B%0Avar%20count%3B%0Afor%20%28var%20z%3D0%3Bz%3Cthis%3Bz++%29%20%7B%0A%20%20count%20%3D%200%3B%0A%20%20var%20flags%20%3D%20new%20Array%28%29%3B%0A%20%20for%20%28var%20p%3D0%3B%20p%3Csize%3B%20p++%29%20%7B%0A%20%20%20%20flags%5Bp%5D%20%3D%20true%3B%0A%20%20%7D%0A%20%20for%20%28var%20i%3D1%3Bi%3C%3Dsize%3Bi++%29%20%7B%0A%20%20%20%20if%20%28flags%5Bi-1%5D%29%20%7B%0A%20%20%20%20%20%20var%20prime%20%3D%20i+1%3B%0A%20%20%20%20%20%20var%20k%20%3D%20i%20+%20prime%3B%0A%20%20%20%20%20%20while%20%28k%20%3C%3D%20size%29%20%7B%0A%20%20%20%20%20%20%20%20flags%5Bk-1%5D%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20k%20%3D%20k%20+%20prime%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20count%20%3D%20count%20+%201%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0Areturn%20count%3E'),
+source: "jsbenchmark\x0a\x0a<\x0avar size = 8190;\x0avar count;\x0afor (var z=0;z<this;z++) {\x0a  count = 0;\x0a  var flags = new Array();\x0a  for (var p=0; p<size; p++) {\x0a    flags[p] = true;\x0a  }\x0a  for (var i=1;i<=size;i++) {\x0a    if (flags[i-1]) {\x0a      var prime = i+1;\x0a      var k = i + prime;\x0a      while (k <= size) {\x0a        flags[k-1] = false;\x0a        k = k + prime;\x0a      }\x0a      count = count + 1;\x0a    }\x0a  }\x0a}\x0areturn count>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.Number);
 
 smalltalk.addMethod(
-unescape('_jstinyBenchmarks'),
+"_jstinyBenchmarks",
 smalltalk.method({
-selector: unescape('jstinyBenchmarks'),
+selector: "jstinyBenchmarks",
 category: '*Benchfib',
 fn: function (){
 var self=this;
@@ -131,19 +131,19 @@ var n2=nil;
 (function(){while((function(){(t1=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return smalltalk.send(n1, "_jsbenchmark", []);})]));return ((($receiver = t1).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n1=((($receiver = n1).klass === smalltalk.Number) ? $receiver *(2) : smalltalk.send($receiver, "__star", [(2)])));})()}})();
 (n2=(28));
 (function(){while((function(){(t2=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return (r=smalltalk.send(n2, "_jsbenchFib", []));})]));return ((($receiver = t2).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n2=((($receiver = n2).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
-return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [unescape("%20bytecodes/sec%3B%20")]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [unescape("%20sends/sec")]);
+return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [" bytecodes/sec; "]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [" sends/sec"]);
 return self;},
 args: [],
-source: unescape('jstinyBenchmarks%0A%09%220%20jstinyBenchmarks%22%0A%0A%09%7C%20t1%20t2%20r%20n1%20n2%20%7C%0A%09n1%20%3A%3D%201.%0A%09%5Bt1%20%3A%3D%20Date%20millisecondsToRun%3A%20%5Bn1%20jsbenchmark%5D.%0A%09t1%20%3C%201000%5D%20whileTrue%3A%5Bn1%20%3A%3D%20n1%20*%202%5D.%20%22Note%3A%20%23benchmark%27s%20runtime%20is%20about%20O%28n%29%22%0A%0A%09n2%20%3A%3D%2028.%0A%09%5Bt2%20%3A%3D%20Date%20millisecondsToRun%3A%20%5Br%20%3A%3D%20n2%20jsbenchFib%5D.%0A%09t2%20%3C%201000%5D%20whileTrue%3A%5Bn2%20%3A%3D%20n2%20+%201%5D.%20%0A%09%22Note%3A%20%23jsbenchFib%27s%20runtime%20is%20about%20O%28k%5En%29%2C%0A%09%09where%20k%20is%20the%20golden%20number%20%3D%20%281%20+%205%20sqrt%29%20/%202%20%3D%201.618....%22%0A%0A%09%5E%20%28%28n1%20*%20500000%20*%201000%29%20/%20t1%29%20printString%2C%20%27%20bytecodes/sec%3B%20%27%2C%0A%09%20%20%28%28r%20*%201000%29%20/%20t2%29%20printString%2C%20%27%20sends/sec%27'),
-messageSends: ["whileTrue:", "millisecondsToRun:", "jsbenchmark", unescape("%3C"), unescape("*"), "jsbenchFib", unescape("+"), unescape("%2C"), "printString", unescape("/")],
+source: "jstinyBenchmarks\x0a\x09\x220 jstinyBenchmarks\x22\x0a\x0a\x09| t1 t2 r n1 n2 |\x0a\x09n1 := 1.\x0a\x09[t1 := Date millisecondsToRun: [n1 jsbenchmark].\x0a\x09t1 < 1000] whileTrue:[n1 := n1 * 2]. \x22Note: #benchmark's runtime is about O(n)\x22\x0a\x0a\x09n2 := 28.\x0a\x09[t2 := Date millisecondsToRun: [r := n2 jsbenchFib].\x0a\x09t2 < 1000] whileTrue:[n2 := n2 + 1]. \x0a\x09\x22Note: #jsbenchFib's runtime is about O(k^n),\x0a\x09\x09where k is the golden number = (1 + 5 sqrt) / 2 = 1.618....\x22\x0a\x0a\x09^ ((n1 * 500000 * 1000) / t1) printString, ' bytecodes/sec; ',\x0a\x09  ((r * 1000) / t2) printString, ' sends/sec'",
+messageSends: ["whileTrue:", "millisecondsToRun:", "jsbenchmark", "<", "*", "jsbenchFib", "+", ",", "printString", "/"],
 referencedClasses: ["Date"]
 }),
 smalltalk.Number);
 
 smalltalk.addMethod(
-unescape('_tinyBenchmarks'),
+"_tinyBenchmarks",
 smalltalk.method({
-selector: unescape('tinyBenchmarks'),
+selector: "tinyBenchmarks",
 category: '*Benchfib',
 fn: function (){
 var self=this;
@@ -156,11 +156,11 @@ var n2=nil;
 (function(){while((function(){(t1=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return smalltalk.send(n1, "_benchmark", []);})]));return ((($receiver = t1).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n1=((($receiver = n1).klass === smalltalk.Number) ? $receiver *(2) : smalltalk.send($receiver, "__star", [(2)])));})()}})();
 (n2=(16));
 (function(){while((function(){(t2=smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [(function(){return (r=smalltalk.send(n2, "_benchFib", []));})]));return ((($receiver = t2).klass === smalltalk.Number) ? $receiver <(1000) : smalltalk.send($receiver, "__lt", [(1000)]));})()) {(function(){return (n2=((($receiver = n2).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
-return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [unescape("%20bytecodes/sec%3B%20")]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [unescape("%20sends/sec")]);
+return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(((($receiver = ((($receiver = ((($receiver = n1).klass === smalltalk.Number) ? $receiver *(500000) : smalltalk.send($receiver, "__star", [(500000)]))).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t1 : smalltalk.send($receiver, "__slash", [t1])), "_printString", []), "__comma", [" bytecodes/sec; "]), "__comma", [smalltalk.send(((($receiver = ((($receiver = r).klass === smalltalk.Number) ? $receiver *(1000) : smalltalk.send($receiver, "__star", [(1000)]))).klass === smalltalk.Number) ? $receiver /t2 : smalltalk.send($receiver, "__slash", [t2])), "_printString", [])]), "__comma", [" sends/sec"]);
 return self;},
 args: [],
-source: unescape('tinyBenchmarks%20%0A%09%22Report%20the%20results%20of%20running%20the%20two%20tiny%20Squeak%20benchmarks.%0A%09ar%209/10/1999%3A%20Adjusted%20to%20run%20at%20least%201%20sec%20to%20get%20more%20stable%20results%22%0A%09%220%20tinyBenchmarks%22%0A%09%22On%20a%20292%20MHz%20G3%20Mac%3A%2022727272%20bytecodes/sec%3B%20984169%20sends/sec%22%0A%09%22On%20a%20400%20MHz%20PII/Win98%3A%20%2018028169%20bytecodes/sec%3B%201081272%20sends/sec%22%0A%09%7C%20t1%20t2%20r%20n1%20n2%20%7C%0A%09n1%20%3A%3D%201.%0A%09%5Bt1%20%3A%3D%20Date%20millisecondsToRun%3A%20%5Bn1%20benchmark%5D.%0A%09t1%20%3C%201000%5D%20whileTrue%3A%5Bn1%20%3A%3D%20n1%20*%202%5D.%20%22Note%3A%20%23benchmark%27s%20runtime%20is%20about%20O%28n%29%22%0A%0A%09n2%20%3A%3D%2016.%0A%09%5Bt2%20%3A%3D%20Date%20millisecondsToRun%3A%20%5Br%20%3A%3D%20n2%20benchFib%5D.%0A%09t2%20%3C%201000%5D%20whileTrue%3A%5Bn2%20%3A%3D%20n2%20+%201%5D.%20%0A%09%22Note%3A%20%23benchFib%27s%20runtime%20is%20about%20O%28k%5En%29%2C%0A%09%09where%20k%20is%20the%20golden%20number%20%3D%20%281%20+%205%20sqrt%29%20/%202%20%3D%201.618....%22%0A%0A%09%5E%20%28%28n1%20*%20500000%20*%201000%29%20/%20t1%29%20printString%2C%20%27%20bytecodes/sec%3B%20%27%2C%0A%09%20%20%28%28r%20*%201000%29%20/%20t2%29%20printString%2C%20%27%20sends/sec%27'),
-messageSends: ["whileTrue:", "millisecondsToRun:", "benchmark", unescape("%3C"), unescape("*"), "benchFib", unescape("+"), unescape("%2C"), "printString", unescape("/")],
+source: "tinyBenchmarks \x0a\x09\x22Report the results of running the two tiny Squeak benchmarks.\x0a\x09ar 9/10/1999: Adjusted to run at least 1 sec to get more stable results\x22\x0a\x09\x220 tinyBenchmarks\x22\x0a\x09\x22On a 292 MHz G3 Mac: 22727272 bytecodes/sec; 984169 sends/sec\x22\x0a\x09\x22On a 400 MHz PII/Win98:  18028169 bytecodes/sec; 1081272 sends/sec\x22\x0a\x09| t1 t2 r n1 n2 |\x0a\x09n1 := 1.\x0a\x09[t1 := Date millisecondsToRun: [n1 benchmark].\x0a\x09t1 < 1000] whileTrue:[n1 := n1 * 2]. \x22Note: #benchmark's runtime is about O(n)\x22\x0a\x0a\x09n2 := 16.\x0a\x09[t2 := Date millisecondsToRun: [r := n2 benchFib].\x0a\x09t2 < 1000] whileTrue:[n2 := n2 + 1]. \x0a\x09\x22Note: #benchFib's runtime is about O(k^n),\x0a\x09\x09where k is the golden number = (1 + 5 sqrt) / 2 = 1.618....\x22\x0a\x0a\x09^ ((n1 * 500000 * 1000) / t1) printString, ' bytecodes/sec; ',\x0a\x09  ((r * 1000) / t2) printString, ' sends/sec'",
+messageSends: ["whileTrue:", "millisecondsToRun:", "benchmark", "<", "*", "benchFib", "+", ",", "printString", "/"],
 referencedClasses: ["Date"]
 }),
 smalltalk.Number);

Dosya farkı çok büyük olduğundan ihmal edildi
+ 169 - 169
js/Canvas.deploy.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 337 - 337
js/Canvas.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 2 - 3
js/Compiler-Tests.deploy.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 2 - 3
js/Compiler-Tests.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 18 - 17
js/Compiler.deploy.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 18 - 17
js/Compiler.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 35 - 41
js/Documentation.deploy.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 48 - 75
js/Documentation.js


+ 13 - 13
js/Examples.deploy.js

@@ -1,9 +1,9 @@
 smalltalk.addPackage('Examples', {});
 smalltalk.addClass('Counter', smalltalk.Widget, ['count', 'header'], 'Examples');
 smalltalk.addMethod(
-unescape('_decrease'),
+"_decrease",
 smalltalk.method({
-selector: unescape('decrease'),
+selector: "decrease",
 fn: function (){
 var self=this;
 (self['@count']=((($receiver = self['@count']).klass === smalltalk.Number) ? $receiver -(1) : smalltalk.send($receiver, "__minus", [(1)])));
@@ -13,9 +13,9 @@ return self;}
 smalltalk.Counter);
 
 smalltalk.addMethod(
-unescape('_increase'),
+"_increase",
 smalltalk.method({
-selector: unescape('increase'),
+selector: "increase",
 fn: function (){
 var self=this;
 (self['@count']=((($receiver = self['@count']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));
@@ -25,35 +25,35 @@ return self;}
 smalltalk.Counter);
 
 smalltalk.addMethod(
-unescape('_initialize'),
+"_initialize",
 smalltalk.method({
-selector: unescape('initialize'),
+selector: "initialize",
 fn: function (){
 var self=this;
-smalltalk.send(self, "_initialize", [], smalltalk.Widget);
+smalltalk.send(self, "_initialize", [], smalltalk.Counter.superclass || nil);
 (self['@count']=(0));
 return self;}
 }),
 smalltalk.Counter);
 
 smalltalk.addMethod(
-unescape('_renderOn_'),
+"_renderOn_",
 smalltalk.method({
-selector: unescape('renderOn%3A'),
+selector: "renderOn:",
 fn: function (html){
 var self=this;
 (self['@header']=(function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(self['@count'], "_asString", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_h1", [])));
-(function($rec){smalltalk.send($rec, "_with_", [unescape("++")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_increase", []);})]);})(smalltalk.send(html, "_button", []));
-(function($rec){smalltalk.send($rec, "_with_", [unescape("--")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_decrease", []);})]);})(smalltalk.send(html, "_button", []));
+(function($rec){smalltalk.send($rec, "_with_", ["++"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_increase", []);})]);})(smalltalk.send(html, "_button", []));
+(function($rec){smalltalk.send($rec, "_with_", ["--"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_decrease", []);})]);})(smalltalk.send(html, "_button", []));
 return self;}
 }),
 smalltalk.Counter);
 
 
 smalltalk.addMethod(
-unescape('_tryExample'),
+"_tryExample",
 smalltalk.method({
-selector: unescape('tryExample'),
+selector: "tryExample",
 fn: function (){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_new", []), "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);

+ 21 - 21
js/Examples.js

@@ -1,10 +1,10 @@
 smalltalk.addPackage('Examples', {});
 smalltalk.addClass('Counter', smalltalk.Widget, ['count', 'header'], 'Examples');
-smalltalk.Counter.comment=unescape('This%20is%20a%20trivial%20Widget%20example%20mimicking%20the%20classic%20Counter%20example%20in%20Seaside.%20%0AIn%20order%20to%20play%20with%20it%2C%20just%20select%20the%20doit%20below%20and%20press%20the%20Do%20it%20button%20in%20the%20far%20right%20corner.%0AThen%20take%20a%20look%20in%20the%20HTML%20document%20above%20the%20IDE.%0A%0A%20%20%20%20%20%20%20%20Counter%20new%20appendToJQuery%3A%20%27body%27%20asJQuery')
+smalltalk.Counter.comment="This is a trivial Widget example mimicking the classic Counter example in Seaside. \x0aIn order to play with it, just select the doit below and press the Do it button in the far right corner.\x0aThen take a look in the HTML document above the IDE.\x0a\x0a        Counter new appendToJQuery: 'body' asJQuery"
 smalltalk.addMethod(
-unescape('_decrease'),
+"_decrease",
 smalltalk.method({
-selector: unescape('decrease'),
+selector: "decrease",
 category: 'actions',
 fn: function (){
 var self=this;
@@ -12,16 +12,16 @@ var self=this;
 smalltalk.send(self['@header'], "_contents_", [(function(html){return smalltalk.send(html, "_with_", [smalltalk.send(self['@count'], "_asString", [])]);})]);
 return self;},
 args: [],
-source: unescape('decrease%0A%20%20%20%20count%20%3A%3D%20count%20-%201.%0A%20%20%20%20header%20contents%3A%20%5B%3Ahtml%20%7C%20html%20with%3A%20count%20asString%5D'),
-messageSends: [unescape("-"), "contents:", "with:", "asString"],
+source: "decrease\x0a    count := count - 1.\x0a    header contents: [:html | html with: count asString]",
+messageSends: ["-", "contents:", "with:", "asString"],
 referencedClasses: []
 }),
 smalltalk.Counter);
 
 smalltalk.addMethod(
-unescape('_increase'),
+"_increase",
 smalltalk.method({
-selector: unescape('increase'),
+selector: "increase",
 category: 'actions',
 fn: function (){
 var self=this;
@@ -29,42 +29,42 @@ var self=this;
 smalltalk.send(self['@header'], "_contents_", [(function(html){return smalltalk.send(html, "_with_", [smalltalk.send(self['@count'], "_asString", [])]);})]);
 return self;},
 args: [],
-source: unescape('increase%0A%20%20%20%20count%20%3A%3D%20count%20+%201.%0A%20%20%20%20header%20contents%3A%20%5B%3Ahtml%20%7C%20html%20with%3A%20count%20asString%5D'),
-messageSends: [unescape("+"), "contents:", "with:", "asString"],
+source: "increase\x0a    count := count + 1.\x0a    header contents: [:html | html with: count asString]",
+messageSends: ["+", "contents:", "with:", "asString"],
 referencedClasses: []
 }),
 smalltalk.Counter);
 
 smalltalk.addMethod(
-unescape('_initialize'),
+"_initialize",
 smalltalk.method({
-selector: unescape('initialize'),
+selector: "initialize",
 category: 'initialization',
 fn: function (){
 var self=this;
-smalltalk.send(self, "_initialize", [], smalltalk.Widget);
+smalltalk.send(self, "_initialize", [], smalltalk.Counter.superclass || nil);
 (self['@count']=(0));
 return self;},
 args: [],
-source: unescape('initialize%0A%20%20%20%20super%20initialize.%0A%20%20%20%20count%20%3A%3D%200'),
+source: "initialize\x0a    super initialize.\x0a    count := 0",
 messageSends: ["initialize"],
 referencedClasses: []
 }),
 smalltalk.Counter);
 
 smalltalk.addMethod(
-unescape('_renderOn_'),
+"_renderOn_",
 smalltalk.method({
-selector: unescape('renderOn%3A'),
+selector: "renderOn:",
 category: 'rendering',
 fn: function (html){
 var self=this;
 (self['@header']=(function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(self['@count'], "_asString", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_h1", [])));
-(function($rec){smalltalk.send($rec, "_with_", [unescape("++")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_increase", []);})]);})(smalltalk.send(html, "_button", []));
-(function($rec){smalltalk.send($rec, "_with_", [unescape("--")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_decrease", []);})]);})(smalltalk.send(html, "_button", []));
+(function($rec){smalltalk.send($rec, "_with_", ["++"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_increase", []);})]);})(smalltalk.send(html, "_button", []));
+(function($rec){smalltalk.send($rec, "_with_", ["--"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_decrease", []);})]);})(smalltalk.send(html, "_button", []));
 return self;},
 args: ["html"],
-source: unescape('renderOn%3A%20html%0A%20%20%20%20header%20%3A%3D%20html%20h1%20%0A%09with%3A%20count%20asString%3B%0A%09yourself.%0A%20%20%20%20html%20button%0A%09with%3A%20%27++%27%3B%0A%09onClick%3A%20%5Bself%20increase%5D.%0A%20%20%20%20html%20button%0A%09with%3A%20%27--%27%3B%0A%09onClick%3A%20%5Bself%20decrease%5D'),
+source: "renderOn: html\x0a    header := html h1 \x0a\x09with: count asString;\x0a\x09yourself.\x0a    html button\x0a\x09with: '++';\x0a\x09onClick: [self increase].\x0a    html button\x0a\x09with: '--';\x0a\x09onClick: [self decrease]",
 messageSends: ["with:", "asString", "yourself", "h1", "onClick:", "increase", "button", "decrease"],
 referencedClasses: []
 }),
@@ -72,16 +72,16 @@ smalltalk.Counter);
 
 
 smalltalk.addMethod(
-unescape('_tryExample'),
+"_tryExample",
 smalltalk.method({
-selector: unescape('tryExample'),
+selector: "tryExample",
 category: 'example',
 fn: function (){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_new", []), "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
 return self;},
 args: [],
-source: unescape('tryExample%0A%09%22In%20order%20to%20play%20with%20the%20Counter%2C%20just%20select%20the%0A%09doit%20below%20and%20press%20the%20Do%20it%20button.%20Then%20take%20a%0A%09look%20in%20the%20HTML%20document%20above%20the%20IDE.%22%0A%0A%09%22Counter%20tryExample%22%0A%20%20%20%20%20%20%20%20self%20new%20appendToJQuery%3A%20%27body%27%20asJQuery%20'),
+source: "tryExample\x0a\x09\x22In order to play with the Counter, just select the\x0a\x09doit below and press the Do it button. Then take a\x0a\x09look in the HTML document above the IDE.\x22\x0a\x0a\x09\x22Counter tryExample\x22\x0a        self new appendToJQuery: 'body' asJQuery",
 messageSends: ["appendToJQuery:", "new", "asJQuery"],
 referencedClasses: []
 }),

Dosya farkı çok büyük olduğundan ihmal edildi
+ 38 - 34
js/IDE.deploy.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 40 - 36
js/IDE.js


+ 19 - 19
js/Kernel-Announcements.deploy.js

@@ -1,9 +1,9 @@
 smalltalk.addPackage('Kernel-Announcements', {});
 smalltalk.addClass('AnnouncementSubscription', smalltalk.Object, ['block', 'announcementClass'], 'Kernel-Announcements');
 smalltalk.addMethod(
-unescape('_announcementClass'),
+"_announcementClass",
 smalltalk.method({
-selector: unescape('announcementClass'),
+selector: "announcementClass",
 fn: function (){
 var self=this;
 return self['@announcementClass'];
@@ -12,9 +12,9 @@ return self;}
 smalltalk.AnnouncementSubscription);
 
 smalltalk.addMethod(
-unescape('_announcementClass_'),
+"_announcementClass_",
 smalltalk.method({
-selector: unescape('announcementClass%3A'),
+selector: "announcementClass:",
 fn: function (aClass){
 var self=this;
 (self['@announcementClass']=aClass);
@@ -23,9 +23,9 @@ return self;}
 smalltalk.AnnouncementSubscription);
 
 smalltalk.addMethod(
-unescape('_block'),
+"_block",
 smalltalk.method({
-selector: unescape('block'),
+selector: "block",
 fn: function (){
 var self=this;
 return self['@block'];
@@ -34,9 +34,9 @@ return self;}
 smalltalk.AnnouncementSubscription);
 
 smalltalk.addMethod(
-unescape('_block_'),
+"_block_",
 smalltalk.method({
-selector: unescape('block%3A'),
+selector: "block:",
 fn: function (aBlock){
 var self=this;
 (self['@block']=aBlock);
@@ -45,9 +45,9 @@ return self;}
 smalltalk.AnnouncementSubscription);
 
 smalltalk.addMethod(
-unescape('_deliver_'),
+"_deliver_",
 smalltalk.method({
-selector: unescape('deliver%3A'),
+selector: "deliver:",
 fn: function (anAnnouncement){
 var self=this;
 ((($receiver = smalltalk.send(self, "_handlesAnnouncement_", [anAnnouncement])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_block", []), "_value_", [anAnnouncement]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_block", []), "_value_", [anAnnouncement]);})]));
@@ -56,9 +56,9 @@ return self;}
 smalltalk.AnnouncementSubscription);
 
 smalltalk.addMethod(
-unescape('_handlesAnnouncement_'),
+"_handlesAnnouncement_",
 smalltalk.method({
-selector: unescape('handlesAnnouncement%3A'),
+selector: "handlesAnnouncement:",
 fn: function (anAnnouncement){
 var self=this;
 return smalltalk.send(anAnnouncement, "_isKindOf_", [smalltalk.send(self, "_announcementClass", [])]);
@@ -70,9 +70,9 @@ smalltalk.AnnouncementSubscription);
 
 smalltalk.addClass('Announcer', smalltalk.Object, ['registry', 'subscriptions'], 'Kernel-Announcements');
 smalltalk.addMethod(
-unescape('_announce_'),
+"_announce_",
 smalltalk.method({
-selector: unescape('announce%3A'),
+selector: "announce:",
 fn: function (anAnnouncement){
 var self=this;
 smalltalk.send(self['@subscriptions'], "_do_", [(function(each){return smalltalk.send(each, "_deliver_", [anAnnouncement]);})]);
@@ -81,21 +81,21 @@ return self;}
 smalltalk.Announcer);
 
 smalltalk.addMethod(
-unescape('_initialize'),
+"_initialize",
 smalltalk.method({
-selector: unescape('initialize'),
+selector: "initialize",
 fn: function (){
 var self=this;
-smalltalk.send(self, "_initialize", [], smalltalk.Object);
+smalltalk.send(self, "_initialize", [], smalltalk.Announcer.superclass || nil);
 (self['@subscriptions']=smalltalk.send((smalltalk.Array || Array), "_new", []));
 return self;}
 }),
 smalltalk.Announcer);
 
 smalltalk.addMethod(
-unescape('_on_do_'),
+"_on_do_",
 smalltalk.method({
-selector: unescape('on%3Ado%3A'),
+selector: "on:do:",
 fn: function (aClass, aBlock){
 var self=this;
 smalltalk.send(self['@subscriptions'], "_add_", [(function($rec){smalltalk.send($rec, "_block_", [aBlock]);smalltalk.send($rec, "_announcementClass_", [aClass]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.AnnouncementSubscription || AnnouncementSubscription), "_new", []))]);

+ 28 - 28
js/Kernel-Announcements.js

@@ -1,96 +1,96 @@
 smalltalk.addPackage('Kernel-Announcements', {});
 smalltalk.addClass('AnnouncementSubscription', smalltalk.Object, ['block', 'announcementClass'], 'Kernel-Announcements');
 smalltalk.addMethod(
-unescape('_announcementClass'),
+"_announcementClass",
 smalltalk.method({
-selector: unescape('announcementClass'),
+selector: "announcementClass",
 category: 'accessing',
 fn: function (){
 var self=this;
 return self['@announcementClass'];
 return self;},
 args: [],
-source: unescape('announcementClass%0A%09%5EannouncementClass'),
+source: "announcementClass\x0a\x09^announcementClass",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.AnnouncementSubscription);
 
 smalltalk.addMethod(
-unescape('_announcementClass_'),
+"_announcementClass_",
 smalltalk.method({
-selector: unescape('announcementClass%3A'),
+selector: "announcementClass:",
 category: 'accessing',
 fn: function (aClass){
 var self=this;
 (self['@announcementClass']=aClass);
 return self;},
 args: ["aClass"],
-source: unescape('announcementClass%3A%20aClass%0A%09announcementClass%20%3A%3D%20aClass'),
+source: "announcementClass: aClass\x0a\x09announcementClass := aClass",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.AnnouncementSubscription);
 
 smalltalk.addMethod(
-unescape('_block'),
+"_block",
 smalltalk.method({
-selector: unescape('block'),
+selector: "block",
 category: 'accessing',
 fn: function (){
 var self=this;
 return self['@block'];
 return self;},
 args: [],
-source: unescape('block%0A%09%5Eblock'),
+source: "block\x0a\x09^block",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.AnnouncementSubscription);
 
 smalltalk.addMethod(
-unescape('_block_'),
+"_block_",
 smalltalk.method({
-selector: unescape('block%3A'),
+selector: "block:",
 category: 'accessing',
 fn: function (aBlock){
 var self=this;
 (self['@block']=aBlock);
 return self;},
 args: ["aBlock"],
-source: unescape('block%3A%20aBlock%0A%09block%20%3A%3D%20aBlock'),
+source: "block: aBlock\x0a\x09block := aBlock",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.AnnouncementSubscription);
 
 smalltalk.addMethod(
-unescape('_deliver_'),
+"_deliver_",
 smalltalk.method({
-selector: unescape('deliver%3A'),
+selector: "deliver:",
 category: 'announcing',
 fn: function (anAnnouncement){
 var self=this;
 ((($receiver = smalltalk.send(self, "_handlesAnnouncement_", [anAnnouncement])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_block", []), "_value_", [anAnnouncement]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_block", []), "_value_", [anAnnouncement]);})]));
 return self;},
 args: ["anAnnouncement"],
-source: unescape('deliver%3A%20anAnnouncement%0A%09%28self%20handlesAnnouncement%3A%20anAnnouncement%29%0A%09%09ifTrue%3A%20%5Bself%20block%20value%3A%20anAnnouncement%5D'),
+source: "deliver: anAnnouncement\x0a\x09(self handlesAnnouncement: anAnnouncement)\x0a\x09\x09ifTrue: [self block value: anAnnouncement]",
 messageSends: ["ifTrue:", "handlesAnnouncement:", "value:", "block"],
 referencedClasses: []
 }),
 smalltalk.AnnouncementSubscription);
 
 smalltalk.addMethod(
-unescape('_handlesAnnouncement_'),
+"_handlesAnnouncement_",
 smalltalk.method({
-selector: unescape('handlesAnnouncement%3A'),
+selector: "handlesAnnouncement:",
 category: 'announcing',
 fn: function (anAnnouncement){
 var self=this;
 return smalltalk.send(anAnnouncement, "_isKindOf_", [smalltalk.send(self, "_announcementClass", [])]);
 return self;},
 args: ["anAnnouncement"],
-source: unescape('handlesAnnouncement%3A%20anAnnouncement%0A%09%5EanAnnouncement%20isKindOf%3A%20self%20announcementClass'),
+source: "handlesAnnouncement: anAnnouncement\x0a\x09^anAnnouncement isKindOf: self announcementClass",
 messageSends: ["isKindOf:", "announcementClass"],
 referencedClasses: []
 }),
@@ -100,49 +100,49 @@ smalltalk.AnnouncementSubscription);
 
 smalltalk.addClass('Announcer', smalltalk.Object, ['registry', 'subscriptions'], 'Kernel-Announcements');
 smalltalk.addMethod(
-unescape('_announce_'),
+"_announce_",
 smalltalk.method({
-selector: unescape('announce%3A'),
+selector: "announce:",
 category: 'announcing',
 fn: function (anAnnouncement){
 var self=this;
 smalltalk.send(self['@subscriptions'], "_do_", [(function(each){return smalltalk.send(each, "_deliver_", [anAnnouncement]);})]);
 return self;},
 args: ["anAnnouncement"],
-source: unescape('announce%3A%20anAnnouncement%0A%09subscriptions%20do%3A%20%5B%3Aeach%20%7C%0A%09%09each%20deliver%3A%20anAnnouncement%5D'),
+source: "announce: anAnnouncement\x0a\x09subscriptions do: [:each |\x0a\x09\x09each deliver: anAnnouncement]",
 messageSends: ["do:", "deliver:"],
 referencedClasses: []
 }),
 smalltalk.Announcer);
 
 smalltalk.addMethod(
-unescape('_initialize'),
+"_initialize",
 smalltalk.method({
-selector: unescape('initialize'),
+selector: "initialize",
 category: 'initialization',
 fn: function (){
 var self=this;
-smalltalk.send(self, "_initialize", [], smalltalk.Object);
+smalltalk.send(self, "_initialize", [], smalltalk.Announcer.superclass || nil);
 (self['@subscriptions']=smalltalk.send((smalltalk.Array || Array), "_new", []));
 return self;},
 args: [],
-source: unescape('initialize%0A%09super%20initialize.%0A%09subscriptions%20%3A%3D%20Array%20new'),
+source: "initialize\x0a\x09super initialize.\x0a\x09subscriptions := Array new",
 messageSends: ["initialize", "new"],
 referencedClasses: ["Array"]
 }),
 smalltalk.Announcer);
 
 smalltalk.addMethod(
-unescape('_on_do_'),
+"_on_do_",
 smalltalk.method({
-selector: unescape('on%3Ado%3A'),
+selector: "on:do:",
 category: 'subscribing',
 fn: function (aClass, aBlock){
 var self=this;
 smalltalk.send(self['@subscriptions'], "_add_", [(function($rec){smalltalk.send($rec, "_block_", [aBlock]);smalltalk.send($rec, "_announcementClass_", [aClass]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.AnnouncementSubscription || AnnouncementSubscription), "_new", []))]);
 return self;},
 args: ["aClass", "aBlock"],
-source: unescape('on%3A%20aClass%20do%3A%20aBlock%0A%09subscriptions%20add%3A%20%28AnnouncementSubscription%20new%0A%09%09block%3A%20aBlock%3B%0A%09%09announcementClass%3A%20aClass%3B%0A%09%09yourself%29'),
+source: "on: aClass do: aBlock\x0a\x09subscriptions add: (AnnouncementSubscription new\x0a\x09\x09block: aBlock;\x0a\x09\x09announcementClass: aClass;\x0a\x09\x09yourself)",
 messageSends: ["add:", "block:", "announcementClass:", "yourself", "new"],
 referencedClasses: ["AnnouncementSubscription"]
 }),

+ 62 - 62
js/Kernel-Classes.deploy.js

@@ -4,7 +4,7 @@ smalltalk.addMethod(
 "_addCompiledMethod_",
 smalltalk.method({
 selector: "addCompiledMethod:",
-fn: function (aMethod) {
+fn: function (aMethod){
 var self=this;
 smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self);
 return self;}
@@ -15,7 +15,7 @@ smalltalk.addMethod(
 "_allInstanceVariableNames",
 smalltalk.method({
 selector: "allInstanceVariableNames",
-fn: function () {
+fn: function (){
 var self=this;
 var result=nil;
 (result=smalltalk.send(smalltalk.send(self, "_instanceVariableNames", []), "_copy", []));
@@ -29,7 +29,7 @@ smalltalk.addMethod(
 "_allSubclasses",
 smalltalk.method({
 selector: "allSubclasses",
-fn: function () {
+fn: function (){
 var self=this;
 var result=nil;
 (result=smalltalk.send(self, "_subclasses", []));
@@ -43,7 +43,7 @@ smalltalk.addMethod(
 "_basicNew",
 smalltalk.method({
 selector: "basicNew",
-fn: function () {
+fn: function (){
 var self=this;
 return new self.fn();
 return self;}
@@ -54,7 +54,7 @@ smalltalk.addMethod(
 "_canUnderstand_",
 smalltalk.method({
 selector: "canUnderstand:",
-fn: function (aSelector) {
+fn: function (aSelector){
 var self=this;
 return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_methodDictionary", []), "_keys", []), "_includes_", [smalltalk.send(aSelector, "_asString", [])]), "_or_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(self, "_superclass", []), "_notNil", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(self, "_superclass", []), "_canUnderstand_", [aSelector]);})]);})]);
 return self;}
@@ -65,7 +65,7 @@ smalltalk.addMethod(
 "_comment",
 smalltalk.method({
 selector: "comment",
-fn: function () {
+fn: function (){
 var self=this;
 return (($receiver = smalltalk.send(self, "_basicAt_", ["comment"])) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
 return self;}
@@ -76,7 +76,7 @@ smalltalk.addMethod(
 "_comment_",
 smalltalk.method({
 selector: "comment:",
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 smalltalk.send(self, "_basicAt_put_", ["comment", aString]);
 return self;}
@@ -87,7 +87,7 @@ smalltalk.addMethod(
 "_commentStamp",
 smalltalk.method({
 selector: "commentStamp",
-fn: function () {
+fn: function (){
 var self=this;
 return (function($rec){smalltalk.send($rec, "_class_", [self]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.ClassCommentReader || ClassCommentReader), "_new", []));
 return self;}
@@ -98,7 +98,7 @@ smalltalk.addMethod(
 "_commentStamp_prior_",
 smalltalk.method({
 selector: "commentStamp:prior:",
-fn: function (aStamp, prior) {
+fn: function (aStamp, prior){
 var self=this;
 return smalltalk.send(self, "_commentStamp", []);
 return self;}
@@ -109,7 +109,7 @@ smalltalk.addMethod(
 "_compile_",
 smalltalk.method({
 selector: "compile:",
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 smalltalk.send(self, "_compile_category_", [aString, ""]);
 return self;}
@@ -131,7 +131,7 @@ smalltalk.addMethod(
 "_inheritsFrom_",
 smalltalk.method({
 selector: "inheritsFrom:",
-fn: function (aClass) {
+fn: function (aClass){
 var self=this;
 return smalltalk.send(smalltalk.send(aClass, "_allSubclasses", []), "_includes_", [self]);
 return self;}
@@ -142,7 +142,7 @@ smalltalk.addMethod(
 "_instanceVariableNames",
 smalltalk.method({
 selector: "instanceVariableNames",
-fn: function () {
+fn: function (){
 var self=this;
 return self.iVarNames;
 return self;}
@@ -153,7 +153,7 @@ smalltalk.addMethod(
 "_methodAt_",
 smalltalk.method({
 selector: "methodAt:",
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 return smalltalk.methods(self)[aString];
 return self;}
@@ -164,7 +164,7 @@ smalltalk.addMethod(
 "_methodDictionary",
 smalltalk.method({
 selector: "methodDictionary",
-fn: function () {
+fn: function (){
 var self=this;
 var dict = smalltalk.HashedCollection._new();
 	var methods = self.fn.prototype.methods;
@@ -182,7 +182,7 @@ smalltalk.addMethod(
 "_methodsFor_",
 smalltalk.method({
 selector: "methodsFor:",
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 return (function($rec){smalltalk.send($rec, "_class_category_", [self, aString]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.ClassCategoryReader || ClassCategoryReader), "_new", []));
 return self;}
@@ -193,7 +193,7 @@ smalltalk.addMethod(
 "_methodsFor_stamp_",
 smalltalk.method({
 selector: "methodsFor:stamp:",
-fn: function (aString, aStamp) {
+fn: function (aString, aStamp){
 var self=this;
 return smalltalk.send(self, "_methodsFor_", [aString]);
 return self;}
@@ -204,7 +204,7 @@ smalltalk.addMethod(
 "_name",
 smalltalk.method({
 selector: "name",
-fn: function () {
+fn: function (){
 var self=this;
 return self.className || nil;
 return self;}
@@ -215,7 +215,7 @@ smalltalk.addMethod(
 "_new",
 smalltalk.method({
 selector: "new",
-fn: function () {
+fn: function (){
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_basicNew", []), "_initialize", []);
 return self;}
@@ -226,7 +226,7 @@ smalltalk.addMethod(
 "_protocols",
 smalltalk.method({
 selector: "protocols",
-fn: function () {
+fn: function (){
 var self=this;
 var protocols=nil;
 (protocols=smalltalk.send((smalltalk.Array || Array), "_new", []));
@@ -240,7 +240,7 @@ smalltalk.addMethod(
 "_protocolsDo_",
 smalltalk.method({
 selector: "protocolsDo:",
-fn: function (aBlock) {
+fn: function (aBlock){
 var self=this;
 var methodsByCategory=nil;
 (methodsByCategory=smalltalk.send((smalltalk.HashedCollection || HashedCollection), "_new", []));
@@ -254,7 +254,7 @@ smalltalk.addMethod(
 "_prototype",
 smalltalk.method({
 selector: "prototype",
-fn: function () {
+fn: function (){
 var self=this;
 return self.fn.prototype;
 return self;}
@@ -265,7 +265,7 @@ smalltalk.addMethod(
 "_removeCompiledMethod_",
 smalltalk.method({
 selector: "removeCompiledMethod:",
-fn: function (aMethod) {
+fn: function (aMethod){
 var self=this;
 delete self.fn.prototype[aMethod.selector._asSelector()];
 	delete self.fn.prototype.methods[aMethod.selector];
@@ -278,7 +278,7 @@ smalltalk.addMethod(
 "_subclasses",
 smalltalk.method({
 selector: "subclasses",
-fn: function () {
+fn: function (){
 var self=this;
 return smalltalk.subclasses(self);
 return self;}
@@ -289,7 +289,7 @@ smalltalk.addMethod(
 "_superclass",
 smalltalk.method({
 selector: "superclass",
-fn: function () {
+fn: function (){
 var self=this;
 return self.superclass || nil;
 return self;}
@@ -300,7 +300,7 @@ smalltalk.addMethod(
 "_withAllSubclasses",
 smalltalk.method({
 selector: "withAllSubclasses",
-fn: function () {
+fn: function (){
 var self=this;
 return (function($rec){smalltalk.send($rec, "_addAll_", [smalltalk.send(self, "_allSubclasses", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Array || Array), "_with_", [self]));
 return self;}
@@ -314,7 +314,7 @@ smalltalk.addMethod(
 "_category",
 smalltalk.method({
 selector: "category",
-fn: function () {
+fn: function (){
 var self=this;
 return (($receiver = smalltalk.send(self, "_package", [])) == nil || $receiver == undefined) ? (function(){return "Unclassified";})() : (function(){return smalltalk.send(smalltalk.send(self, "_package", []), "_name", []);})();
 return self;}
@@ -325,7 +325,7 @@ smalltalk.addMethod(
 "_isClass",
 smalltalk.method({
 selector: "isClass",
-fn: function () {
+fn: function (){
 var self=this;
 return true;
 return self;}
@@ -336,7 +336,7 @@ smalltalk.addMethod(
 "_package",
 smalltalk.method({
 selector: "package",
-fn: function () {
+fn: function (){
 var self=this;
 return self.pkg;
 return self;}
@@ -347,7 +347,7 @@ smalltalk.addMethod(
 "_package_",
 smalltalk.method({
 selector: "package:",
-fn: function (aPackage) {
+fn: function (aPackage){
 var self=this;
 self.pkg = aPackage;
 return self;}
@@ -358,7 +358,7 @@ smalltalk.addMethod(
 "_printString",
 smalltalk.method({
 selector: "printString",
-fn: function () {
+fn: function (){
 var self=this;
 return smalltalk.send(self, "_name", []);
 return self;}
@@ -369,7 +369,7 @@ smalltalk.addMethod(
 "_rename_",
 smalltalk.method({
 selector: "rename:",
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 
 		smalltalk[aString] = self;
@@ -384,7 +384,7 @@ smalltalk.addMethod(
 "_subclass_instanceVariableNames_",
 smalltalk.method({
 selector: "subclass:instanceVariableNames:",
-fn: function (aString, anotherString) {
+fn: function (aString, anotherString){
 var self=this;
 return smalltalk.send(self, "_subclass_instanceVariableNames_package_", [aString, anotherString, nil]);
 return self;}
@@ -395,7 +395,7 @@ smalltalk.addMethod(
 "_subclass_instanceVariableNames_category_",
 smalltalk.method({
 selector: "subclass:instanceVariableNames:category:",
-fn: function (aString, aString2, aString3) {
+fn: function (aString, aString2, aString3){
 var self=this;
 smalltalk.send(self, "_deprecatedAPI", []);
 return smalltalk.send(self, "_subclass_instanceVariableNames_package_", [aString, aString2, aString3]);
@@ -407,7 +407,7 @@ smalltalk.addMethod(
 "_subclass_instanceVariableNames_classVariableNames_poolDictionaries_category_",
 smalltalk.method({
 selector: "subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",
-fn: function (aString, aString2, classVars, pools, aString3) {
+fn: function (aString, aString2, classVars, pools, aString3){
 var self=this;
 return smalltalk.send(self, "_subclass_instanceVariableNames_package_", [aString, aString2, aString3]);
 return self;}
@@ -418,7 +418,7 @@ smalltalk.addMethod(
 "_subclass_instanceVariableNames_package_",
 smalltalk.method({
 selector: "subclass:instanceVariableNames:package:",
-fn: function (aString, aString2, aString3) {
+fn: function (aString, aString2, aString3){
 var self=this;
 return smalltalk.send(smalltalk.send((smalltalk.ClassBuilder || ClassBuilder), "_new", []), "_superclass_subclass_instanceVariableNames_package_", [self, smalltalk.send(aString, "_asString", []), aString2, aString3]);
 return self;}
@@ -432,7 +432,7 @@ smalltalk.addMethod(
 "_instanceClass",
 smalltalk.method({
 selector: "instanceClass",
-fn: function () {
+fn: function (){
 var self=this;
 return self.instanceClass;
 return self;}
@@ -443,7 +443,7 @@ smalltalk.addMethod(
 "_instanceVariableNames_",
 smalltalk.method({
 selector: "instanceVariableNames:",
-fn: function (aCollection) {
+fn: function (aCollection){
 var self=this;
 smalltalk.send(smalltalk.send((smalltalk.ClassBuilder || ClassBuilder), "_new", []), "_class_instanceVariableNames_", [self, aCollection]);
 return self;}
@@ -454,7 +454,7 @@ smalltalk.addMethod(
 "_isMetaclass",
 smalltalk.method({
 selector: "isMetaclass",
-fn: function () {
+fn: function (){
 var self=this;
 return true;
 return self;}
@@ -465,7 +465,7 @@ smalltalk.addMethod(
 "_printString",
 smalltalk.method({
 selector: "printString",
-fn: function () {
+fn: function (){
 var self=this;
 return smalltalk.send(smalltalk.send(smalltalk.send(self, "_instanceClass", []), "_name", []), "__comma", [" class"]);
 return self;}
@@ -479,7 +479,7 @@ smalltalk.addMethod(
 "_addSubclassOf_named_instanceVariableNames_",
 smalltalk.method({
 selector: "addSubclassOf:named:instanceVariableNames:",
-fn: function (aClass, aString, aCollection) {
+fn: function (aClass, aString, aCollection){
 var self=this;
 smalltalk.addClass(aString, aClass, aCollection);
 	    return smalltalk[aString];
@@ -491,7 +491,7 @@ smalltalk.addMethod(
 "_addSubclassOf_named_instanceVariableNames_package_",
 smalltalk.method({
 selector: "addSubclassOf:named:instanceVariableNames:package:",
-fn: function (aClass, aString, aCollection, packageName) {
+fn: function (aClass, aString, aCollection, packageName){
 var self=this;
 smalltalk.addClass(aString, aClass, aCollection, packageName);
 	    return smalltalk[aString];
@@ -503,7 +503,7 @@ smalltalk.addMethod(
 "_class_instanceVariableNames_",
 smalltalk.method({
 selector: "class:instanceVariableNames:",
-fn: function (aClass, aString) {
+fn: function (aClass, aString){
 var self=this;
 ((($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_error_", [smalltalk.send(smalltalk.send(aClass, "_name", []), "__comma", [" is not a metaclass"])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_error_", [smalltalk.send(smalltalk.send(aClass, "_name", []), "__comma", [" is not a metaclass"])]);})]));
 smalltalk.send(aClass, "_basicAt_put_", ["iVarNames", smalltalk.send(self, "_instanceVariableNamesFor_", [aString])]);
@@ -533,7 +533,7 @@ smalltalk.addMethod(
 "_instanceVariableNamesFor_",
 smalltalk.method({
 selector: "instanceVariableNamesFor:",
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 return smalltalk.send(smalltalk.send(aString, "_tokenize_", [" "]), "_reject_", [(function(each){return smalltalk.send(each, "_isEmpty", []);})]);
 return self;}
@@ -544,7 +544,7 @@ smalltalk.addMethod(
 "_setupClass_",
 smalltalk.method({
 selector: "setupClass:",
-fn: function (aClass) {
+fn: function (aClass){
 var self=this;
 smalltalk.init(aClass);;
 return self;}
@@ -555,7 +555,7 @@ smalltalk.addMethod(
 "_superclass_subclass_",
 smalltalk.method({
 selector: "superclass:subclass:",
-fn: function (aClass, aString) {
+fn: function (aClass, aString){
 var self=this;
 return smalltalk.send(self, "_superclass_subclass_instanceVariableNames_package_", [aClass, aString, "", nil]);
 return self;}
@@ -566,7 +566,7 @@ smalltalk.addMethod(
 "_superclass_subclass_instanceVariableNames_package_",
 smalltalk.method({
 selector: "superclass:subclass:instanceVariableNames:package:",
-fn: function (aClass, aString, aString2, aString3) {
+fn: function (aClass, aString, aString2, aString3){
 var self=this;
 var newClass=nil;
 (newClass=smalltalk.send(self, "_addSubclassOf_named_instanceVariableNames_package_", [aClass, aString, smalltalk.send(self, "_instanceVariableNamesFor_", [aString2]), (($receiver = aString3) == nil || $receiver == undefined) ? (function(){return "unclassified";})() : $receiver]));
@@ -583,7 +583,7 @@ smalltalk.addMethod(
 "_class_category_",
 smalltalk.method({
 selector: "class:category:",
-fn: function (aClass, aString) {
+fn: function (aClass, aString){
 var self=this;
 (self['@class']=aClass);
 (self['@category']=aString);
@@ -606,9 +606,9 @@ smalltalk.addMethod(
 "_initialize",
 smalltalk.method({
 selector: "initialize",
-fn: function () {
+fn: function (){
 var self=this;
-smalltalk.send(self, "_initialize", [], smalltalk.Object);
+smalltalk.send(self, "_initialize", [], smalltalk.ClassCategoryReader.superclass || nil);
 (self['@chunkParser']=smalltalk.send((smalltalk.ChunkParser || ChunkParser), "_new", []));
 return self;}
 }),
@@ -634,7 +634,7 @@ smalltalk.addMethod(
 "_class_",
 smalltalk.method({
 selector: "class:",
-fn: function (aClass) {
+fn: function (aClass){
 var self=this;
 (self['@class']=aClass);
 return self;}
@@ -645,9 +645,9 @@ smalltalk.addMethod(
 "_initialize",
 smalltalk.method({
 selector: "initialize",
-fn: function () {
+fn: function (){
 var self=this;
-smalltalk.send(self, "_initialize", [], smalltalk.Object);
+smalltalk.send(self, "_initialize", [], smalltalk.ClassCommentReader.superclass || nil);
 (self['@chunkParser']=smalltalk.send((smalltalk.ChunkParser || ChunkParser), "_new", []));
 return self;}
 }),
@@ -657,7 +657,7 @@ smalltalk.addMethod(
 "_scanFrom_",
 smalltalk.method({
 selector: "scanFrom:",
-fn: function (aChunkParser) {
+fn: function (aChunkParser){
 var self=this;
 var chunk=nil;
 (chunk=smalltalk.send(aChunkParser, "_nextChunk", []));
@@ -670,7 +670,7 @@ smalltalk.addMethod(
 "_setComment_",
 smalltalk.method({
 selector: "setComment:",
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 smalltalk.send(self['@class'], "_comment_", [aString]);
 return self;}
@@ -684,7 +684,7 @@ smalltalk.addMethod(
 "_getNodesFrom_",
 smalltalk.method({
 selector: "getNodesFrom:",
-fn: function (aCollection) {
+fn: function (aCollection){
 var self=this;
 var children=nil;
 var others=nil;
@@ -700,7 +700,7 @@ smalltalk.addMethod(
 "_level",
 smalltalk.method({
 selector: "level",
-fn: function () {
+fn: function (){
 var self=this;
 return self['@level'];
 return self;}
@@ -711,7 +711,7 @@ smalltalk.addMethod(
 "_level_",
 smalltalk.method({
 selector: "level:",
-fn: function (anInteger) {
+fn: function (anInteger){
 var self=this;
 (self['@level']=anInteger);
 return self;}
@@ -722,7 +722,7 @@ smalltalk.addMethod(
 "_nodes",
 smalltalk.method({
 selector: "nodes",
-fn: function () {
+fn: function (){
 var self=this;
 return self['@nodes'];
 return self;}
@@ -733,7 +733,7 @@ smalltalk.addMethod(
 "_theClass",
 smalltalk.method({
 selector: "theClass",
-fn: function () {
+fn: function (){
 var self=this;
 return self['@theClass'];
 return self;}
@@ -744,7 +744,7 @@ smalltalk.addMethod(
 "_theClass_",
 smalltalk.method({
 selector: "theClass:",
-fn: function (aClass) {
+fn: function (aClass){
 var self=this;
 (self['@theClass']=aClass);
 return self;}
@@ -755,7 +755,7 @@ smalltalk.addMethod(
 "_traverseClassesWith_",
 smalltalk.method({
 selector: "traverseClassesWith:",
-fn: function (aCollection) {
+fn: function (aCollection){
 var self=this;
 smalltalk.send(aCollection, "_add_", [smalltalk.send(self, "_theClass", [])]);
 smalltalk.send(smalltalk.send(smalltalk.send(self, "_nodes", []), "_sorted_", [(function(a, b){return ((($receiver = smalltalk.send(smalltalk.send(a, "_theClass", []), "_name", [])).klass === smalltalk.Number) ? $receiver <=smalltalk.send(smalltalk.send(b, "_theClass", []), "_name", []) : smalltalk.send($receiver, "__lt_eq", [smalltalk.send(smalltalk.send(b, "_theClass", []), "_name", [])]));})]), "_do_", [(function(aNode){return smalltalk.send(aNode, "_traverseClassesWith_", [aCollection]);})]);
@@ -768,7 +768,7 @@ smalltalk.addMethod(
 "_on_classes_level_",
 smalltalk.method({
 selector: "on:classes:level:",
-fn: function (aClass, aCollection, anInteger) {
+fn: function (aClass, aCollection, anInteger){
 var self=this;
 return (function($rec){smalltalk.send($rec, "_theClass_", [aClass]);smalltalk.send($rec, "_level_", [anInteger]);smalltalk.send($rec, "_getNodesFrom_", [aCollection]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
 return self;}

+ 63 - 63
js/Kernel-Classes.js

@@ -6,7 +6,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "addCompiledMethod:",
 category: 'compiling',
-fn: function (aMethod) {
+fn: function (aMethod){
 var self=this;
 smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self);
 return self;},
@@ -22,7 +22,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "allInstanceVariableNames",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 var result=nil;
 (result=smalltalk.send(smalltalk.send(self, "_instanceVariableNames", []), "_copy", []));
@@ -41,7 +41,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "allSubclasses",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 var result=nil;
 (result=smalltalk.send(self, "_subclasses", []));
@@ -60,7 +60,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "basicNew",
 category: 'instance creation',
-fn: function () {
+fn: function (){
 var self=this;
 return new self.fn();
 return self;},
@@ -76,7 +76,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "canUnderstand:",
 category: 'testing',
-fn: function (aSelector) {
+fn: function (aSelector){
 var self=this;
 return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_methodDictionary", []), "_keys", []), "_includes_", [smalltalk.send(aSelector, "_asString", [])]), "_or_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(self, "_superclass", []), "_notNil", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(self, "_superclass", []), "_canUnderstand_", [aSelector]);})]);})]);
 return self;},
@@ -92,7 +92,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "comment",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return (($receiver = smalltalk.send(self, "_basicAt_", ["comment"])) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
 return self;},
@@ -108,7 +108,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "comment:",
 category: 'accessing',
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 smalltalk.send(self, "_basicAt_put_", ["comment", aString]);
 return self;},
@@ -124,7 +124,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "commentStamp",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return (function($rec){smalltalk.send($rec, "_class_", [self]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.ClassCommentReader || ClassCommentReader), "_new", []));
 return self;},
@@ -140,7 +140,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "commentStamp:prior:",
 category: 'accessing',
-fn: function (aStamp, prior) {
+fn: function (aStamp, prior){
 var self=this;
 return smalltalk.send(self, "_commentStamp", []);
 return self;},
@@ -156,7 +156,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "compile:",
 category: 'compiling',
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 smalltalk.send(self, "_compile_category_", [aString, ""]);
 return self;},
@@ -177,7 +177,7 @@ var self=this;
 (function($rec){smalltalk.send($rec, "_install_forClass_category_", [aString, self, anotherString]);return smalltalk.send($rec, "_setupClass_", [self]);})(smalltalk.send((smalltalk.Compiler || Compiler), "_new", []));
 return self;},
 args: ["aString", "anotherString"],
-source: "compile: aString category: anotherString\x0a\x09Compiler new\x0a\x09\x09install: aString forClass: self category: anotherString;\x0a\x09\x09setupClass: self\x0a",
+source: "compile: aString category: anotherString\x0a\x09Compiler new\x0a\x09\x09install: aString forClass: self category: anotherString;\x0a\x09\x09setupClass: self",
 messageSends: ["install:forClass:category:", "setupClass:", "new"],
 referencedClasses: ["Compiler"]
 }),
@@ -188,7 +188,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "inheritsFrom:",
 category: 'testing',
-fn: function (aClass) {
+fn: function (aClass){
 var self=this;
 return smalltalk.send(smalltalk.send(aClass, "_allSubclasses", []), "_includes_", [self]);
 return self;},
@@ -204,7 +204,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "instanceVariableNames",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self.iVarNames;
 return self;},
@@ -220,7 +220,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "methodAt:",
 category: 'accessing',
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 return smalltalk.methods(self)[aString];
 return self;},
@@ -236,7 +236,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "methodDictionary",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 var dict = smalltalk.HashedCollection._new();
 	var methods = self.fn.prototype.methods;
@@ -259,7 +259,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "methodsFor:",
 category: 'accessing',
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 return (function($rec){smalltalk.send($rec, "_class_category_", [self, aString]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.ClassCategoryReader || ClassCategoryReader), "_new", []));
 return self;},
@@ -275,7 +275,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "methodsFor:stamp:",
 category: 'accessing',
-fn: function (aString, aStamp) {
+fn: function (aString, aStamp){
 var self=this;
 return smalltalk.send(self, "_methodsFor_", [aString]);
 return self;},
@@ -291,7 +291,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "name",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self.className || nil;
 return self;},
@@ -307,7 +307,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "new",
 category: 'instance creation',
-fn: function () {
+fn: function (){
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_basicNew", []), "_initialize", []);
 return self;},
@@ -323,7 +323,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "protocols",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 var protocols=nil;
 (protocols=smalltalk.send((smalltalk.Array || Array), "_new", []));
@@ -342,7 +342,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "protocolsDo:",
 category: 'accessing',
-fn: function (aBlock) {
+fn: function (aBlock){
 var self=this;
 var methodsByCategory=nil;
 (methodsByCategory=smalltalk.send((smalltalk.HashedCollection || HashedCollection), "_new", []));
@@ -361,7 +361,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "prototype",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self.fn.prototype;
 return self;},
@@ -377,7 +377,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "removeCompiledMethod:",
 category: 'compiling',
-fn: function (aMethod) {
+fn: function (aMethod){
 var self=this;
 delete self.fn.prototype[aMethod.selector._asSelector()];
 	delete self.fn.prototype.methods[aMethod.selector];
@@ -395,7 +395,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "subclasses",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return smalltalk.subclasses(self);
 return self;},
@@ -411,7 +411,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "superclass",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self.superclass || nil;
 return self;},
@@ -427,7 +427,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "withAllSubclasses",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return (function($rec){smalltalk.send($rec, "_addAll_", [smalltalk.send(self, "_allSubclasses", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Array || Array), "_with_", [self]));
 return self;},
@@ -447,7 +447,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "category",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return (($receiver = smalltalk.send(self, "_package", [])) == nil || $receiver == undefined) ? (function(){return "Unclassified";})() : (function(){return smalltalk.send(smalltalk.send(self, "_package", []), "_name", []);})();
 return self;},
@@ -463,7 +463,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "isClass",
 category: 'testing',
-fn: function () {
+fn: function (){
 var self=this;
 return true;
 return self;},
@@ -479,7 +479,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "package",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self.pkg;
 return self;},
@@ -495,7 +495,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "package:",
 category: 'accessing',
-fn: function (aPackage) {
+fn: function (aPackage){
 var self=this;
 self.pkg = aPackage;
 return self;},
@@ -511,7 +511,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "printString",
 category: 'printing',
-fn: function () {
+fn: function (){
 var self=this;
 return smalltalk.send(self, "_name", []);
 return self;},
@@ -527,7 +527,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "rename:",
 category: 'accessing',
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 
 		smalltalk[aString] = self;
@@ -547,7 +547,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "subclass:instanceVariableNames:",
 category: 'class creation',
-fn: function (aString, anotherString) {
+fn: function (aString, anotherString){
 var self=this;
 return smalltalk.send(self, "_subclass_instanceVariableNames_package_", [aString, anotherString, nil]);
 return self;},
@@ -563,7 +563,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "subclass:instanceVariableNames:category:",
 category: 'class creation',
-fn: function (aString, aString2, aString3) {
+fn: function (aString, aString2, aString3){
 var self=this;
 smalltalk.send(self, "_deprecatedAPI", []);
 return smalltalk.send(self, "_subclass_instanceVariableNames_package_", [aString, aString2, aString3]);
@@ -580,7 +580,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:",
 category: 'class creation',
-fn: function (aString, aString2, classVars, pools, aString3) {
+fn: function (aString, aString2, classVars, pools, aString3){
 var self=this;
 return smalltalk.send(self, "_subclass_instanceVariableNames_package_", [aString, aString2, aString3]);
 return self;},
@@ -596,7 +596,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "subclass:instanceVariableNames:package:",
 category: 'class creation',
-fn: function (aString, aString2, aString3) {
+fn: function (aString, aString2, aString3){
 var self=this;
 return smalltalk.send(smalltalk.send((smalltalk.ClassBuilder || ClassBuilder), "_new", []), "_superclass_subclass_instanceVariableNames_package_", [self, smalltalk.send(aString, "_asString", []), aString2, aString3]);
 return self;},
@@ -616,7 +616,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "instanceClass",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self.instanceClass;
 return self;},
@@ -632,7 +632,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "instanceVariableNames:",
 category: 'accessing',
-fn: function (aCollection) {
+fn: function (aCollection){
 var self=this;
 smalltalk.send(smalltalk.send((smalltalk.ClassBuilder || ClassBuilder), "_new", []), "_class_instanceVariableNames_", [self, aCollection]);
 return self;},
@@ -648,7 +648,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "isMetaclass",
 category: 'testing',
-fn: function () {
+fn: function (){
 var self=this;
 return true;
 return self;},
@@ -664,7 +664,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "printString",
 category: 'printing',
-fn: function () {
+fn: function (){
 var self=this;
 return smalltalk.send(smalltalk.send(smalltalk.send(self, "_instanceClass", []), "_name", []), "__comma", [" class"]);
 return self;},
@@ -684,7 +684,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "addSubclassOf:named:instanceVariableNames:",
 category: 'private',
-fn: function (aClass, aString, aCollection) {
+fn: function (aClass, aString, aCollection){
 var self=this;
 smalltalk.addClass(aString, aClass, aCollection);
 	    return smalltalk[aString];
@@ -701,7 +701,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "addSubclassOf:named:instanceVariableNames:package:",
 category: 'private',
-fn: function (aClass, aString, aCollection, packageName) {
+fn: function (aClass, aString, aCollection, packageName){
 var self=this;
 smalltalk.addClass(aString, aClass, aCollection, packageName);
 	    return smalltalk[aString];
@@ -718,7 +718,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "class:instanceVariableNames:",
 category: 'class creation',
-fn: function (aClass, aString) {
+fn: function (aClass, aString){
 var self=this;
 ((($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_error_", [smalltalk.send(smalltalk.send(aClass, "_name", []), "__comma", [" is not a metaclass"])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_error_", [smalltalk.send(smalltalk.send(aClass, "_name", []), "__comma", [" is not a metaclass"])]);})]));
 smalltalk.send(aClass, "_basicAt_put_", ["iVarNames", smalltalk.send(self, "_instanceVariableNamesFor_", [aString])]);
@@ -758,7 +758,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "instanceVariableNamesFor:",
 category: 'private',
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 return smalltalk.send(smalltalk.send(aString, "_tokenize_", [" "]), "_reject_", [(function(each){return smalltalk.send(each, "_isEmpty", []);})]);
 return self;},
@@ -774,7 +774,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "setupClass:",
 category: 'private',
-fn: function (aClass) {
+fn: function (aClass){
 var self=this;
 smalltalk.init(aClass);;
 return self;},
@@ -790,7 +790,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "superclass:subclass:",
 category: 'class creation',
-fn: function (aClass, aString) {
+fn: function (aClass, aString){
 var self=this;
 return smalltalk.send(self, "_superclass_subclass_instanceVariableNames_package_", [aClass, aString, "", nil]);
 return self;},
@@ -806,7 +806,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "superclass:subclass:instanceVariableNames:package:",
 category: 'class creation',
-fn: function (aClass, aString, aString2, aString3) {
+fn: function (aClass, aString, aString2, aString3){
 var self=this;
 var newClass=nil;
 (newClass=smalltalk.send(self, "_addSubclassOf_named_instanceVariableNames_package_", [aClass, aString, smalltalk.send(self, "_instanceVariableNamesFor_", [aString2]), (($receiver = aString3) == nil || $receiver == undefined) ? (function(){return "unclassified";})() : $receiver]));
@@ -829,7 +829,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "class:category:",
 category: 'accessing',
-fn: function (aClass, aString) {
+fn: function (aClass, aString){
 var self=this;
 (self['@class']=aClass);
 (self['@category']=aString);
@@ -862,9 +862,9 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "initialize",
 category: 'initialization',
-fn: function () {
+fn: function (){
 var self=this;
-smalltalk.send(self, "_initialize", [], smalltalk.Object);
+smalltalk.send(self, "_initialize", [], smalltalk.ClassCategoryReader.superclass || nil);
 (self['@chunkParser']=smalltalk.send((smalltalk.ChunkParser || ChunkParser), "_new", []));
 return self;},
 args: [],
@@ -901,7 +901,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "class:",
 category: 'accessing',
-fn: function (aClass) {
+fn: function (aClass){
 var self=this;
 (self['@class']=aClass);
 return self;},
@@ -917,9 +917,9 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "initialize",
 category: 'initialization',
-fn: function () {
+fn: function (){
 var self=this;
-smalltalk.send(self, "_initialize", [], smalltalk.Object);
+smalltalk.send(self, "_initialize", [], smalltalk.ClassCommentReader.superclass || nil);
 (self['@chunkParser']=smalltalk.send((smalltalk.ChunkParser || ChunkParser), "_new", []));
 return self;},
 args: [],
@@ -934,7 +934,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "scanFrom:",
 category: 'fileIn',
-fn: function (aChunkParser) {
+fn: function (aChunkParser){
 var self=this;
 var chunk=nil;
 (chunk=smalltalk.send(aChunkParser, "_nextChunk", []));
@@ -952,7 +952,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "setComment:",
 category: 'private',
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 smalltalk.send(self['@class'], "_comment_", [aString]);
 return self;},
@@ -971,7 +971,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "getNodesFrom:",
 category: 'accessing',
-fn: function (aCollection) {
+fn: function (aCollection){
 var self=this;
 var children=nil;
 var others=nil;
@@ -992,7 +992,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "level",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self['@level'];
 return self;},
@@ -1008,7 +1008,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "level:",
 category: 'accessing',
-fn: function (anInteger) {
+fn: function (anInteger){
 var self=this;
 (self['@level']=anInteger);
 return self;},
@@ -1024,7 +1024,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "nodes",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self['@nodes'];
 return self;},
@@ -1040,7 +1040,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "theClass",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self['@theClass'];
 return self;},
@@ -1056,7 +1056,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "theClass:",
 category: 'accessing',
-fn: function (aClass) {
+fn: function (aClass){
 var self=this;
 (self['@theClass']=aClass);
 return self;},
@@ -1072,7 +1072,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "traverseClassesWith:",
 category: 'visiting',
-fn: function (aCollection) {
+fn: function (aCollection){
 var self=this;
 smalltalk.send(aCollection, "_add_", [smalltalk.send(self, "_theClass", [])]);
 smalltalk.send(smalltalk.send(smalltalk.send(self, "_nodes", []), "_sorted_", [(function(a, b){return ((($receiver = smalltalk.send(smalltalk.send(a, "_theClass", []), "_name", [])).klass === smalltalk.Number) ? $receiver <=smalltalk.send(smalltalk.send(b, "_theClass", []), "_name", []) : smalltalk.send($receiver, "__lt_eq", [smalltalk.send(smalltalk.send(b, "_theClass", []), "_name", [])]));})]), "_do_", [(function(aNode){return smalltalk.send(aNode, "_traverseClassesWith_", [aCollection]);})]);
@@ -1090,7 +1090,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "on:classes:level:",
 category: 'instance creation',
-fn: function (aClass, aCollection, anInteger) {
+fn: function (aClass, aCollection, anInteger){
 var self=this;
 return (function($rec){smalltalk.send($rec, "_theClass_", [aClass]);smalltalk.send($rec, "_level_", [anInteger]);smalltalk.send($rec, "_getNodesFrom_", [aCollection]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
 return self;},

Dosya farkı çok büyük olduğundan ihmal edildi
+ 118 - 118
js/Kernel-Collections.deploy.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 118 - 118
js/Kernel-Collections.js


+ 25 - 25
js/Kernel-Exceptions.deploy.js

@@ -4,7 +4,7 @@ smalltalk.addMethod(
 "_context",
 smalltalk.method({
 selector: "context",
-fn: function () {
+fn: function (){
 var self=this;
 return self.context;
 return self;}
@@ -15,7 +15,7 @@ smalltalk.addMethod(
 "_isSmalltalkError",
 smalltalk.method({
 selector: "isSmalltalkError",
-fn: function () {
+fn: function (){
 var self=this;
 return self.smalltalkError === true;
 return self;}
@@ -26,7 +26,7 @@ smalltalk.addMethod(
 "_jsStack",
 smalltalk.method({
 selector: "jsStack",
-fn: function () {
+fn: function (){
 var self=this;
 return self.stack;
 return self;}
@@ -37,7 +37,7 @@ smalltalk.addMethod(
 "_messageText",
 smalltalk.method({
 selector: "messageText",
-fn: function () {
+fn: function (){
 var self=this;
 return self['@messageText'];
 return self;}
@@ -48,7 +48,7 @@ smalltalk.addMethod(
 "_messageText_",
 smalltalk.method({
 selector: "messageText:",
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 (self['@messageText']=aString);
 return self;}
@@ -59,7 +59,7 @@ smalltalk.addMethod(
 "_signal",
 smalltalk.method({
 selector: "signal",
-fn: function () {
+fn: function (){
 var self=this;
 self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self);
 return self;}
@@ -70,7 +70,7 @@ smalltalk.addMethod(
 "_signal_",
 smalltalk.method({
 selector: "signal:",
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 smalltalk.send(self, "_messageText_", [aString]);
 smalltalk.send(self, "_signal", []);
@@ -83,7 +83,7 @@ smalltalk.addMethod(
 "_signal",
 smalltalk.method({
 selector: "signal",
-fn: function () {
+fn: function (){
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_new", []), "_signal", []);
 return self;}
@@ -94,7 +94,7 @@ smalltalk.addMethod(
 "_signal_",
 smalltalk.method({
 selector: "signal:",
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_new", []), "_signal_", [aString]);
 return self;}
@@ -107,7 +107,7 @@ smalltalk.addMethod(
 "_message",
 smalltalk.method({
 selector: "message",
-fn: function () {
+fn: function (){
 var self=this;
 return self['@message'];
 return self;}
@@ -118,7 +118,7 @@ smalltalk.addMethod(
 "_message_",
 smalltalk.method({
 selector: "message:",
-fn: function (aMessage) {
+fn: function (aMessage){
 var self=this;
 (self['@message']=aMessage);
 return self;}
@@ -129,9 +129,9 @@ smalltalk.addMethod(
 "_messageText",
 smalltalk.method({
 selector: "messageText",
-fn: function () {
+fn: function (){
 var self=this;
-return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_receiver", []), "_asString", []), "__comma", [unescape("%20does%20not%20understand%20%23")]), "__comma", [smalltalk.send(smalltalk.send(self, "_message", []), "_selector", [])]);
+return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_receiver", []), "_asString", []), "__comma", [" does not understand #"]), "__comma", [smalltalk.send(smalltalk.send(self, "_message", []), "_selector", [])]);
 return self;}
 }),
 smalltalk.MessageNotUnderstood);
@@ -140,7 +140,7 @@ smalltalk.addMethod(
 "_receiver",
 smalltalk.method({
 selector: "receiver",
-fn: function () {
+fn: function (){
 var self=this;
 return self['@receiver'];
 return self;}
@@ -151,7 +151,7 @@ smalltalk.addMethod(
 "_receiver_",
 smalltalk.method({
 selector: "receiver:",
-fn: function (anObject) {
+fn: function (anObject){
 var self=this;
 (self['@receiver']=anObject);
 return self;}
@@ -165,7 +165,7 @@ smalltalk.addMethod(
 "_handleError_",
 smalltalk.method({
 selector: "handleError:",
-fn: function (anError) {
+fn: function (anError){
 var self=this;
 (($receiver = smalltalk.send(anError, "_context", [])) != nil && $receiver != undefined) ? (function(){return smalltalk.send(self, "_logErrorContext_", [smalltalk.send(anError, "_context", [])]);})() : nil;
 smalltalk.send(self, "_logError_", [anError]);
@@ -177,7 +177,7 @@ smalltalk.addMethod(
 "_log_",
 smalltalk.method({
 selector: "log:",
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [aString]);
 return self;}
@@ -188,10 +188,10 @@ smalltalk.addMethod(
 "_logContext_",
 smalltalk.method({
 selector: "logContext:",
-fn: function (aContext) {
+fn: function (aContext){
 var self=this;
 (($receiver = smalltalk.send(aContext, "_home", [])) != nil && $receiver != undefined) ? (function(){return smalltalk.send(self, "_logContext_", [smalltalk.send(aContext, "_home", [])]);})() : nil;
-smalltalk.send(self, "_log_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aContext, "_receiver", []), "_asString", []), "__comma", [unescape("%3E%3E")]), "__comma", [smalltalk.send(aContext, "_selector", [])])]);
+smalltalk.send(self, "_log_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aContext, "_receiver", []), "_asString", []), "__comma", [">>"]), "__comma", [smalltalk.send(aContext, "_selector", [])])]);
 return self;}
 }),
 smalltalk.ErrorHandler);
@@ -200,7 +200,7 @@ smalltalk.addMethod(
 "_logError_",
 smalltalk.method({
 selector: "logError:",
-fn: function (anError) {
+fn: function (anError){
 var self=this;
 smalltalk.send(self, "_log_", [smalltalk.send(anError, "_messageText", [])]);
 return self;}
@@ -211,7 +211,7 @@ smalltalk.addMethod(
 "_logErrorContext_",
 smalltalk.method({
 selector: "logErrorContext:",
-fn: function (aContext) {
+fn: function (aContext){
 var self=this;
 (($receiver = aContext) != nil && $receiver != undefined) ? (function(){return (($receiver = smalltalk.send(aContext, "_home", [])) != nil && $receiver != undefined) ? (function(){return smalltalk.send(self, "_logContext_", [smalltalk.send(aContext, "_home", [])]);})() : nil;})() : nil;
 return self;}
@@ -224,7 +224,7 @@ smalltalk.addMethod(
 "_current",
 smalltalk.method({
 selector: "current",
-fn: function () {
+fn: function (){
 var self=this;
 return (($receiver = self['@current']) == nil || $receiver == undefined) ? (function(){return (self['@current']=smalltalk.send(self, "_new", []));})() : $receiver;
 return self;}
@@ -235,7 +235,7 @@ smalltalk.addMethod(
 "_initialize",
 smalltalk.method({
 selector: "initialize",
-fn: function () {
+fn: function (){
 var self=this;
 smalltalk.send(self, "_register", []);
 return self;}
@@ -246,7 +246,7 @@ smalltalk.addMethod(
 "_register",
 smalltalk.method({
 selector: "register",
-fn: function () {
+fn: function (){
 var self=this;
 smalltalk.send((smalltalk.ErrorHandler || ErrorHandler), "_setCurrent_", [smalltalk.send(self, "_new", [])]);
 return self;}
@@ -257,7 +257,7 @@ smalltalk.addMethod(
 "_setCurrent_",
 smalltalk.method({
 selector: "setCurrent:",
-fn: function (anHandler) {
+fn: function (anHandler){
 var self=this;
 (self['@current']=anHandler);
 return self;}

+ 25 - 25
js/Kernel-Exceptions.js

@@ -5,7 +5,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "context",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self.context;
 return self;},
@@ -21,7 +21,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "isSmalltalkError",
 category: 'testing',
-fn: function () {
+fn: function (){
 var self=this;
 return self.smalltalkError === true;
 return self;},
@@ -37,7 +37,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "jsStack",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self.stack;
 return self;},
@@ -53,7 +53,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "messageText",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self['@messageText'];
 return self;},
@@ -69,7 +69,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "messageText:",
 category: 'accessing',
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 (self['@messageText']=aString);
 return self;},
@@ -85,7 +85,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "signal",
 category: 'signaling',
-fn: function () {
+fn: function (){
 var self=this;
 self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self);
 return self;},
@@ -101,7 +101,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "signal:",
 category: 'signaling',
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 smalltalk.send(self, "_messageText_", [aString]);
 smalltalk.send(self, "_signal", []);
@@ -119,7 +119,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "signal",
 category: 'instance creation',
-fn: function () {
+fn: function (){
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_new", []), "_signal", []);
 return self;},
@@ -135,7 +135,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "signal:",
 category: 'instance creation',
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_new", []), "_signal_", [aString]);
 return self;},
@@ -153,7 +153,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "message",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self['@message'];
 return self;},
@@ -169,7 +169,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "message:",
 category: 'accessing',
-fn: function (aMessage) {
+fn: function (aMessage){
 var self=this;
 (self['@message']=aMessage);
 return self;},
@@ -185,9 +185,9 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "messageText",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
-return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_receiver", []), "_asString", []), "__comma", [unescape("%20does%20not%20understand%20%23")]), "__comma", [smalltalk.send(smalltalk.send(self, "_message", []), "_selector", [])]);
+return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_receiver", []), "_asString", []), "__comma", [" does not understand #"]), "__comma", [smalltalk.send(smalltalk.send(self, "_message", []), "_selector", [])]);
 return self;},
 args: [],
 source: "messageText\x0a\x09^self receiver asString, ' does not understand #', self message selector",
@@ -201,7 +201,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "receiver",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return self['@receiver'];
 return self;},
@@ -217,7 +217,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "receiver:",
 category: 'accessing',
-fn: function (anObject) {
+fn: function (anObject){
 var self=this;
 (self['@receiver']=anObject);
 return self;},
@@ -236,7 +236,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "handleError:",
 category: 'error handling',
-fn: function (anError) {
+fn: function (anError){
 var self=this;
 (($receiver = smalltalk.send(anError, "_context", [])) != nil && $receiver != undefined) ? (function(){return smalltalk.send(self, "_logErrorContext_", [smalltalk.send(anError, "_context", [])]);})() : nil;
 smalltalk.send(self, "_logError_", [anError]);
@@ -253,7 +253,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "log:",
 category: 'private',
-fn: function (aString) {
+fn: function (aString){
 var self=this;
 smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [aString]);
 return self;},
@@ -269,10 +269,10 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "logContext:",
 category: 'private',
-fn: function (aContext) {
+fn: function (aContext){
 var self=this;
 (($receiver = smalltalk.send(aContext, "_home", [])) != nil && $receiver != undefined) ? (function(){return smalltalk.send(self, "_logContext_", [smalltalk.send(aContext, "_home", [])]);})() : nil;
-smalltalk.send(self, "_log_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aContext, "_receiver", []), "_asString", []), "__comma", [unescape("%3E%3E")]), "__comma", [smalltalk.send(aContext, "_selector", [])])]);
+smalltalk.send(self, "_log_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aContext, "_receiver", []), "_asString", []), "__comma", [">>"]), "__comma", [smalltalk.send(aContext, "_selector", [])])]);
 return self;},
 args: ["aContext"],
 source: "logContext: aContext\x0a\x09aContext home ifNotNil: [\x0a\x09\x09self logContext: aContext home].\x0a\x09self log: aContext receiver asString, '>>', aContext selector",
@@ -286,7 +286,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "logError:",
 category: 'private',
-fn: function (anError) {
+fn: function (anError){
 var self=this;
 smalltalk.send(self, "_log_", [smalltalk.send(anError, "_messageText", [])]);
 return self;},
@@ -302,7 +302,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "logErrorContext:",
 category: 'private',
-fn: function (aContext) {
+fn: function (aContext){
 var self=this;
 (($receiver = aContext) != nil && $receiver != undefined) ? (function(){return (($receiver = smalltalk.send(aContext, "_home", [])) != nil && $receiver != undefined) ? (function(){return smalltalk.send(self, "_logContext_", [smalltalk.send(aContext, "_home", [])]);})() : nil;})() : nil;
 return self;},
@@ -320,7 +320,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "current",
 category: 'accessing',
-fn: function () {
+fn: function (){
 var self=this;
 return (($receiver = self['@current']) == nil || $receiver == undefined) ? (function(){return (self['@current']=smalltalk.send(self, "_new", []));})() : $receiver;
 return self;},
@@ -336,7 +336,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "initialize",
 category: 'initialization',
-fn: function () {
+fn: function (){
 var self=this;
 smalltalk.send(self, "_register", []);
 return self;},
@@ -352,7 +352,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "register",
 category: 'initialization',
-fn: function () {
+fn: function (){
 var self=this;
 smalltalk.send((smalltalk.ErrorHandler || ErrorHandler), "_setCurrent_", [smalltalk.send(self, "_new", [])]);
 return self;},
@@ -368,7 +368,7 @@ smalltalk.addMethod(
 smalltalk.method({
 selector: "setCurrent:",
 category: 'accessing',
-fn: function (anHandler) {
+fn: function (anHandler){
 var self=this;
 (self['@current']=anHandler);
 return self;},

+ 278 - 330
js/Kernel-Methods.deploy.js

@@ -1,260 +1,235 @@
 smalltalk.addPackage('Kernel-Methods', {});
 smalltalk.addClass('BlockClosure', smalltalk.Object, [], 'Kernel-Methods');
 smalltalk.addMethod(
-unescape('_applyTo_arguments_'),
+"_applyTo_arguments_",
 smalltalk.method({
-selector: unescape('applyTo%3Aarguments%3A'),
-fn: function (anObject, aCollection) {
-    var self = this;
-    return self.apply(anObject, aCollection);
-    return self;
-}
+selector: "applyTo:arguments:",
+fn: function (anObject, aCollection){
+var self=this;
+return self.apply(anObject, aCollection);
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_compiledSource'),
+"_compiledSource",
 smalltalk.method({
-selector: unescape('compiledSource'),
-fn: function () {
-    var self = this;
-    return self.toString();
-    return self;
-}
+selector: "compiledSource",
+fn: function (){
+var self=this;
+return self.toString();
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_ensure_'),
+"_ensure_",
 smalltalk.method({
-selector: unescape('ensure%3A'),
-fn: function (aBlock) {
-    var self = this;
-    var success = nil;
-    success = false;
-    return smalltalk.send(function () {smalltalk.send(self, "_value", []);success = true;return smalltalk.send(aBlock, "_value", []);}, "_on_do_", [smalltalk.Error || Error, function (ex) {($receiver = success).klass === smalltalk.Boolean ? !$receiver ? function () {return smalltalk.send(aBlock, "_value", []);}() : nil : smalltalk.send($receiver, "_ifFalse_", [function () {return smalltalk.send(aBlock, "_value", []);}]);return smalltalk.send(ex, "_signal", []);}]);
-    return self;
-}
+selector: "ensure:",
+fn: function (aBlock){
+var self=this;
+var success=nil;
+(success=false);
+return smalltalk.send((function(){smalltalk.send(self, "_value", []);(success=true);return smalltalk.send(aBlock, "_value", []);}), "_on_do_", [(smalltalk.Error || Error), (function(ex){((($receiver = success).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(aBlock, "_value", []);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(aBlock, "_value", []);})]));return smalltalk.send(ex, "_signal", []);})]);
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_new'),
+"_new",
 smalltalk.method({
-selector: unescape('new'),
-fn: function () {
-    var self = this;
-    return new self;
-    return self;
-}
+selector: "new",
+fn: function (){
+var self=this;
+return new self();
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_newValue_'),
+"_newValue_",
 smalltalk.method({
-selector: unescape('newValue%3A'),
-fn: function (anObject) {
-    var self = this;
-    return new self(anObject);
-    return self;
-}
+selector: "newValue:",
+fn: function (anObject){
+var self=this;
+return new self(anObject);
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_newValue_value_'),
+"_newValue_value_",
 smalltalk.method({
-selector: unescape('newValue%3Avalue%3A'),
-fn: function (anObject, anObject2) {
-    var self = this;
-    return new self(anObject, anObject2);
-    return self;
-}
+selector: "newValue:value:",
+fn: function (anObject, anObject2){
+var self=this;
+return new self(anObject, anObject2);
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_newValue_value_value_'),
+"_newValue_value_value_",
 smalltalk.method({
-selector: unescape('newValue%3Avalue%3Avalue%3A'),
-fn: function (anObject, anObject2, anObject3) {
-    var self = this;
-    return new self(anObject, anObject2);
-    return self;
-}
+selector: "newValue:value:value:",
+fn: function (anObject, anObject2, anObject3){
+var self=this;
+return new self(anObject, anObject2);
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_numArgs'),
+"_numArgs",
 smalltalk.method({
-selector: unescape('numArgs'),
-fn: function () {
-    var self = this;
-    return self.length;
-    return self;
-}
+selector: "numArgs",
+fn: function (){
+var self=this;
+return self.length;
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_on_do_'),
+"_on_do_",
 smalltalk.method({
-selector: unescape('on%3Ado%3A'),
-fn: function (anErrorClass, aBlock) {
-    var self = this;
-    return smalltalk.send(self, "_try_catch_", [self, function (error) {return ($receiver = smalltalk.send(error, "_isKindOf_", [anErrorClass])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(aBlock, "_value_", [error]);}() : function () {return smalltalk.send(error, "_signal", []);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(aBlock, "_value_", [error]);}, function () {return smalltalk.send(error, "_signal", []);}]);}]);
-    return self;
-}
+selector: "on:do:",
+fn: function (anErrorClass, aBlock){
+var self=this;
+return smalltalk.send(self, "_try_catch_", [self, (function(error){return ((($receiver = smalltalk.send(error, "_isKindOf_", [anErrorClass])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(aBlock, "_value_", [error]);})() : (function(){return smalltalk.send(error, "_signal", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(aBlock, "_value_", [error]);}), (function(){return smalltalk.send(error, "_signal", []);})]));})]);
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_timeToRun'),
+"_timeToRun",
 smalltalk.method({
-selector: unescape('timeToRun'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(smalltalk.Date || Date, "_millisecondsToRun_", [self]);
-    return self;
-}
+selector: "timeToRun",
+fn: function (){
+var self=this;
+return smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [self]);
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_value'),
+"_value",
 smalltalk.method({
-selector: unescape('value'),
-fn: function () {
-    var self = this;
-    return self();
-    return self;
-}
+selector: "value",
+fn: function (){
+var self=this;
+return self();;
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_value_'),
+"_value_",
 smalltalk.method({
-selector: unescape('value%3A'),
-fn: function (anArg) {
-    var self = this;
-    return self(anArg);
-    return self;
-}
+selector: "value:",
+fn: function (anArg){
+var self=this;
+return self(anArg);;
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_value_value_'),
+"_value_value_",
 smalltalk.method({
-selector: unescape('value%3Avalue%3A'),
-fn: function (firstArg, secondArg) {
-    var self = this;
-    return self(firstArg, secondArg);
-    return self;
-}
+selector: "value:value:",
+fn: function (firstArg, secondArg){
+var self=this;
+return self(firstArg, secondArg);;
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_value_value_value_'),
+"_value_value_value_",
 smalltalk.method({
-selector: unescape('value%3Avalue%3Avalue%3A'),
-fn: function (firstArg, secondArg, thirdArg) {
-    var self = this;
-    return self(firstArg, secondArg, thirdArg);
-    return self;
-}
+selector: "value:value:value:",
+fn: function (firstArg, secondArg, thirdArg){
+var self=this;
+return self(firstArg, secondArg, thirdArg);;
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_valueWithInterval_'),
+"_valueWithInterval_",
 smalltalk.method({
-selector: unescape('valueWithInterval%3A'),
-fn: function (aNumber) {
-    var self = this;
-    return setInterval(self, aNumber);
-    return self;
-}
+selector: "valueWithInterval:",
+fn: function (aNumber){
+var self=this;
+return setInterval(self, aNumber);
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_valueWithPossibleArguments_'),
+"_valueWithPossibleArguments_",
 smalltalk.method({
-selector: unescape('valueWithPossibleArguments%3A'),
-fn: function (aCollection) {
-    var self = this;
-    return self.apply(null, aCollection);
-    return self;
-}
+selector: "valueWithPossibleArguments:",
+fn: function (aCollection){
+var self=this;
+return self.apply(null, aCollection);;
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_valueWithTimeout_'),
+"_valueWithTimeout_",
 smalltalk.method({
-selector: unescape('valueWithTimeout%3A'),
-fn: function (aNumber) {
-    var self = this;
-    return setTimeout(self, aNumber);
-    return self;
-}
+selector: "valueWithTimeout:",
+fn: function (aNumber){
+var self=this;
+return setTimeout(self, aNumber);
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_whileFalse'),
+"_whileFalse",
 smalltalk.method({
-selector: unescape('whileFalse'),
-fn: function () {
-    var self = this;
-    smalltalk.send(self, "_whileFalse_", [function () {return nil;}]);
-    return self;
-}
+selector: "whileFalse",
+fn: function (){
+var self=this;
+smalltalk.send(self, "_whileFalse_", [(function(){return nil;})]);
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_whileFalse_'),
+"_whileFalse_",
 smalltalk.method({
-selector: unescape('whileFalse%3A'),
-fn: function (aBlock) {
-    var self = this;
-    while (!self()) {
-        aBlock();
-    }
-    return self;
-}
+selector: "whileFalse:",
+fn: function (aBlock){
+var self=this;
+while(!self()) {aBlock()};
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_whileTrue'),
+"_whileTrue",
 smalltalk.method({
-selector: unescape('whileTrue'),
-fn: function () {
-    var self = this;
-    smalltalk.send(self, "_whileTrue_", [function () {return nil;}]);
-    return self;
-}
+selector: "whileTrue",
+fn: function (){
+var self=this;
+smalltalk.send(self, "_whileTrue_", [(function(){return nil;})]);
+return self;}
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_whileTrue_'),
+"_whileTrue_",
 smalltalk.method({
-selector: unescape('whileTrue%3A'),
-fn: function (aBlock) {
-    var self = this;
-    while (self()) {
-        aBlock();
-    }
-    return self;
-}
+selector: "whileTrue:",
+fn: function (aBlock){
+var self=this;
+while(self()) {aBlock()};
+return self;}
 }),
 smalltalk.BlockClosure);
 
@@ -262,148 +237,134 @@ smalltalk.BlockClosure);
 
 smalltalk.addClass('CompiledMethod', smalltalk.Object, [], 'Kernel-Methods');
 smalltalk.addMethod(
-unescape('_arguments'),
+"_arguments",
 smalltalk.method({
-selector: unescape('arguments'),
-fn: function () {
-    var self = this;
-    return self.args || [];
-    return self;
-}
+selector: "arguments",
+fn: function (){
+var self=this;
+return self.args || [];
+return self;}
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_category'),
+"_category",
 smalltalk.method({
-selector: unescape('category'),
-fn: function () {
-    var self = this;
-    return ($receiver = smalltalk.send(self, "_basicAt_", ["category"])) == nil ||
-        $receiver == undefined ? function () {return "";}() : $receiver;
-    return self;
-}
+selector: "category",
+fn: function (){
+var self=this;
+return (($receiver = smalltalk.send(self, "_basicAt_", ["category"])) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
+return self;}
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_category_'),
+"_category_",
 smalltalk.method({
-selector: unescape('category%3A'),
-fn: function (aString) {
-    var self = this;
-    smalltalk.send(self, "_basicAt_put_", ["category", aString]);
-    return self;
-}
+selector: "category:",
+fn: function (aString){
+var self=this;
+smalltalk.send(self, "_basicAt_put_", ["category", aString]);
+return self;}
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_fn'),
+"_fn",
 smalltalk.method({
-selector: unescape('fn'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_basicAt_", ["fn"]);
-    return self;
-}
+selector: "fn",
+fn: function (){
+var self=this;
+return smalltalk.send(self, "_basicAt_", ["fn"]);
+return self;}
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_fn_'),
+"_fn_",
 smalltalk.method({
-selector: unescape('fn%3A'),
-fn: function (aBlock) {
-    var self = this;
-    smalltalk.send(self, "_basicAt_put_", ["fn", aBlock]);
-    return self;
-}
+selector: "fn:",
+fn: function (aBlock){
+var self=this;
+smalltalk.send(self, "_basicAt_put_", ["fn", aBlock]);
+return self;}
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_messageSends'),
+"_messageSends",
 smalltalk.method({
-selector: unescape('messageSends'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_basicAt_", ["messageSends"]);
-    return self;
-}
+selector: "messageSends",
+fn: function (){
+var self=this;
+return smalltalk.send(self, "_basicAt_", ["messageSends"]);
+return self;}
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_methodClass'),
+"_methodClass",
 smalltalk.method({
-selector: unescape('methodClass'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_basicAt_", ["methodClass"]);
-    return self;
-}
+selector: "methodClass",
+fn: function (){
+var self=this;
+return smalltalk.send(self, "_basicAt_", ["methodClass"]);
+return self;}
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_referencedClasses'),
+"_referencedClasses",
 smalltalk.method({
-selector: unescape('referencedClasses'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_basicAt_", ["referencedClasses"]);
-    return self;
-}
+selector: "referencedClasses",
+fn: function (){
+var self=this;
+return smalltalk.send(self, "_basicAt_", ["referencedClasses"]);
+return self;}
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_selector'),
+"_selector",
 smalltalk.method({
-selector: unescape('selector'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_basicAt_", ["selector"]);
-    return self;
-}
+selector: "selector",
+fn: function (){
+var self=this;
+return smalltalk.send(self, "_basicAt_", ["selector"]);
+return self;}
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_selector_'),
+"_selector_",
 smalltalk.method({
-selector: unescape('selector%3A'),
-fn: function (aString) {
-    var self = this;
-    smalltalk.send(self, "_basicAt_put_", ["selector", aString]);
-    return self;
-}
+selector: "selector:",
+fn: function (aString){
+var self=this;
+smalltalk.send(self, "_basicAt_put_", ["selector", aString]);
+return self;}
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_source'),
+"_source",
 smalltalk.method({
-selector: unescape('source'),
-fn: function () {
-    var self = this;
-    return ($receiver = smalltalk.send(self, "_basicAt_", ["source"])) == nil ||
-        $receiver == undefined ? function () {return "";}() : $receiver;
-    return self;
-}
+selector: "source",
+fn: function (){
+var self=this;
+return (($receiver = smalltalk.send(self, "_basicAt_", ["source"])) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
+return self;}
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_source_'),
+"_source_",
 smalltalk.method({
-selector: unescape('source%3A'),
-fn: function (aString) {
-    var self = this;
-    smalltalk.send(self, "_basicAt_put_", ["source", aString]);
-    return self;
-}
+selector: "source:",
+fn: function (aString){
+var self=this;
+smalltalk.send(self, "_basicAt_put_", ["source", aString]);
+return self;}
 }),
 smalltalk.CompiledMethod);
 
@@ -411,161 +372,148 @@ smalltalk.CompiledMethod);
 
 smalltalk.addClass('Message', smalltalk.Object, ['selector', 'arguments'], 'Kernel-Methods');
 smalltalk.addMethod(
-unescape('_arguments'),
+"_arguments",
 smalltalk.method({
-selector: unescape('arguments'),
-fn: function () {
-    var self = this;
-    return self['@arguments'];
-    return self;
-}
+selector: "arguments",
+fn: function (){
+var self=this;
+return self['@arguments'];
+return self;}
 }),
 smalltalk.Message);
 
 smalltalk.addMethod(
-unescape('_arguments_'),
+"_arguments_",
 smalltalk.method({
-selector: unescape('arguments%3A'),
-fn: function (anArray) {
-    var self = this;
-    self['@arguments'] = anArray;
-    return self;
-}
+selector: "arguments:",
+fn: function (anArray){
+var self=this;
+(self['@arguments']=anArray);
+return self;}
 }),
 smalltalk.Message);
 
 smalltalk.addMethod(
-unescape('_printString'),
+"_printString",
 smalltalk.method({
-selector: unescape('printString'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(smalltalk.String || String, "_streamContents_", [function (aStream) {return function ($rec) {smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_printString", [], smalltalk.Object)]);smalltalk.send($rec, "_nextPutAll_", [unescape("%28")]);smalltalk.send($rec, "_nextPutAll_", [self['@selector']]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%29")]);}(aStream);}]);
-    return self;
-}
+selector: "printString",
+fn: function (){
+var self=this;
+return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(aStream){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_printString", [], smalltalk.Message.superclass || nil)]);smalltalk.send($rec, "_nextPutAll_", ["("]);smalltalk.send($rec, "_nextPutAll_", [self['@selector']]);return smalltalk.send($rec, "_nextPutAll_", [")"]);})(aStream);})]);
+return self;}
 }),
 smalltalk.Message);
 
 smalltalk.addMethod(
-unescape('_selector'),
+"_selector",
 smalltalk.method({
-selector: unescape('selector'),
-fn: function () {
-    var self = this;
-    return self['@selector'];
-    return self;
-}
+selector: "selector",
+fn: function (){
+var self=this;
+return self['@selector'];
+return self;}
 }),
 smalltalk.Message);
 
 smalltalk.addMethod(
-unescape('_selector_'),
+"_selector_",
 smalltalk.method({
-selector: unescape('selector%3A'),
-fn: function (aString) {
-    var self = this;
-    self['@selector'] = aString;
-    return self;
-}
+selector: "selector:",
+fn: function (aString){
+var self=this;
+(self['@selector']=aString);
+return self;}
 }),
 smalltalk.Message);
 
 smalltalk.addMethod(
-unescape('_sendTo_'),
+"_sendTo_",
 smalltalk.method({
-selector: unescape('sendTo%3A'),
-fn: function (anObject) {
-    var self = this;
-    smalltalk.send(smalltalk.send(smalltalk.Smalltalk || Smalltalk, "_current", []), "_send_to_arguments_", [smalltalk.send(self, "_selector", []), anObject, smalltalk.send(self, "_arguments", [])]);
-    return self;
-}
+selector: "sendTo:",
+fn: function (anObject){
+var self=this;
+smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_send_to_arguments_", [smalltalk.send(self, "_selector", []), anObject, smalltalk.send(self, "_arguments", [])]);
+return self;}
 }),
 smalltalk.Message);
 
 
 smalltalk.addMethod(
-unescape('_selector_arguments_'),
+"_selector_arguments_",
 smalltalk.method({
-selector: unescape('selector%3Aarguments%3A'),
-fn: function (aString, anArray) {
-    var self = this;
-    return function ($rec) {smalltalk.send($rec, "_selector_", [aString]);smalltalk.send($rec, "_arguments_", [anArray]);return smalltalk.send($rec, "_yourself", []);}(smalltalk.send(self, "_new", []));
-    return self;
-}
+selector: "selector:arguments:",
+fn: function (aString, anArray){
+var self=this;
+return (function($rec){smalltalk.send($rec, "_selector_", [aString]);smalltalk.send($rec, "_arguments_", [anArray]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
+return self;}
 }),
 smalltalk.Message.klass);
 
 
 smalltalk.addClass('MethodContext', smalltalk.Object, [], 'Kernel-Methods');
 smalltalk.addMethod(
-unescape('_asString'),
+"_asString",
 smalltalk.method({
-selector: unescape('asString'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_receiver", []), "_class", []), "_printString", []), "__comma", [unescape("%20%3E%3E%20")]), "__comma", [smalltalk.send(self, "_selector", [])]);
-    return self;
-}
+selector: "asString",
+fn: function (){
+var self=this;
+return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_receiver", []), "_class", []), "_printString", []), "__comma", [" >> "]), "__comma", [smalltalk.send(self, "_selector", [])]);
+return self;}
 }),
 smalltalk.MethodContext);
 
 smalltalk.addMethod(
-unescape('_home'),
+"_home",
 smalltalk.method({
-selector: unescape('home'),
-fn: function () {
-    var self = this;
-    return self.homeContext;
-    return self;
-}
+selector: "home",
+fn: function (){
+var self=this;
+return self.homeContext;
+return self;}
 }),
 smalltalk.MethodContext);
 
 smalltalk.addMethod(
-unescape('_printString'),
+"_printString",
 smalltalk.method({
-selector: unescape('printString'),
-fn: function () {
-    var self = this;
-    return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_printString", [], smalltalk.Object), "__comma", [unescape("%28")]), "__comma", [smalltalk.send(self, "_asString", [])]), "__comma", [unescape("%29")]);
-    return self;
-}
+selector: "printString",
+fn: function (){
+var self=this;
+return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_printString", [], smalltalk.MethodContext.superclass || nil), "__comma", ["("]), "__comma", [smalltalk.send(self, "_asString", [])]), "__comma", [")"]);
+return self;}
 }),
 smalltalk.MethodContext);
 
 smalltalk.addMethod(
-unescape('_receiver'),
+"_receiver",
 smalltalk.method({
-selector: unescape('receiver'),
-fn: function () {
-    var self = this;
-    return self.receiver;
-    return self;
-}
+selector: "receiver",
+fn: function (){
+var self=this;
+return self.receiver;
+return self;}
 }),
 smalltalk.MethodContext);
 
 smalltalk.addMethod(
-unescape('_selector'),
+"_selector",
 smalltalk.method({
-selector: unescape('selector'),
-fn: function () {
-    var self = this;
-    return smalltalk.convertSelector(self.selector);
-    return self;
-}
+selector: "selector",
+fn: function (){
+var self=this;
+return smalltalk.convertSelector(self.selector);
+return self;}
 }),
 smalltalk.MethodContext);
 
 smalltalk.addMethod(
-unescape('_temps'),
+"_temps",
 smalltalk.method({
-selector: unescape('temps'),
-fn: function () {
-    var self = this;
-    return self.temps;
-    return self;
-}
+selector: "temps",
+fn: function (){
+var self=this;
+return self.temps;
+return self;}
 }),
 smalltalk.MethodContext);
 

+ 330 - 382
js/Kernel-Methods.js

@@ -1,364 +1,339 @@
 smalltalk.addPackage('Kernel-Methods', {});
 smalltalk.addClass('BlockClosure', smalltalk.Object, [], 'Kernel-Methods');
-smalltalk.BlockClosure.comment=unescape('A%20BlockClosure%20is%20a%20lexical%20closure.%0AThe%20JavaScript%20representation%20is%20a%20function.%0A%0AA%20BlockClosure%20is%20evaluated%20with%20the%20%60%23value*%60%20methods%20in%20the%20%27evaluating%27%20protocol.')
+smalltalk.BlockClosure.comment="A BlockClosure is a lexical closure.\x0aThe JavaScript representation is a function.\x0a\x0aA BlockClosure is evaluated with the `#value*` methods in the 'evaluating' protocol."
 smalltalk.addMethod(
-unescape('_applyTo_arguments_'),
+"_applyTo_arguments_",
 smalltalk.method({
-selector: unescape('applyTo%3Aarguments%3A'),
+selector: "applyTo:arguments:",
 category: 'evaluating',
-fn: function (anObject, aCollection) {
-    var self = this;
-    return self.apply(anObject, aCollection);
-    return self;
-},
+fn: function (anObject, aCollection){
+var self=this;
+return self.apply(anObject, aCollection);
+return self;},
 args: ["anObject", "aCollection"],
-source: unescape('applyTo%3A%20anObject%20arguments%3A%20aCollection%0A%09%3Creturn%20self.apply%28anObject%2C%20aCollection%29%3E'),
+source: "applyTo: anObject arguments: aCollection\x0a\x09<return self.apply(anObject, aCollection)>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_compiledSource'),
+"_compiledSource",
 smalltalk.method({
-selector: unescape('compiledSource'),
+selector: "compiledSource",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return self.toString();
-    return self;
-},
+fn: function (){
+var self=this;
+return self.toString();
+return self;},
 args: [],
-source: unescape('compiledSource%0A%09%3Creturn%20self.toString%28%29%3E'),
+source: "compiledSource\x0a\x09<return self.toString()>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_ensure_'),
+"_ensure_",
 smalltalk.method({
-selector: unescape('ensure%3A'),
+selector: "ensure:",
 category: 'evaluating',
-fn: function (aBlock) {
-    var self = this;
-    var success = nil;
-    success = false;
-    return smalltalk.send(function () {smalltalk.send(self, "_value", []);success = true;return smalltalk.send(aBlock, "_value", []);}, "_on_do_", [smalltalk.Error || Error, function (ex) {($receiver = success).klass === smalltalk.Boolean ? !$receiver ? function () {return smalltalk.send(aBlock, "_value", []);}() : nil : smalltalk.send($receiver, "_ifFalse_", [function () {return smalltalk.send(aBlock, "_value", []);}]);return smalltalk.send(ex, "_signal", []);}]);
-    return self;
-},
+fn: function (aBlock){
+var self=this;
+var success=nil;
+(success=false);
+return smalltalk.send((function(){smalltalk.send(self, "_value", []);(success=true);return smalltalk.send(aBlock, "_value", []);}), "_on_do_", [(smalltalk.Error || Error), (function(ex){((($receiver = success).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(aBlock, "_value", []);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(aBlock, "_value", []);})]));return smalltalk.send(ex, "_signal", []);})]);
+return self;},
 args: ["aBlock"],
-source: unescape('ensure%3A%20aBlock%0A%09%7C%20success%20%7C%0A%09success%20%3A%3D%20false.%0A%09%5E%5Bself%20value.%20success%20%3A%3D%20true.%20aBlock%20value%5D%0A%09%09on%3A%20Error%0A%09%09do%3A%20%5B%3Aex%20%7C%0A%09%09%09success%20ifFalse%3A%20%5BaBlock%20value%5D.%0A%09%09%09ex%20signal%5D'),
+source: "ensure: aBlock\x0a\x09| success |\x0a\x09success := false.\x0a\x09^[self value. success := true. aBlock value]\x0a\x09\x09on: Error\x0a\x09\x09do: [:ex |\x0a\x09\x09\x09success ifFalse: [aBlock value].\x0a\x09\x09\x09ex signal]",
 messageSends: ["on:do:", "value", "ifFalse:", "signal"],
 referencedClasses: ["Error"]
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_new'),
+"_new",
 smalltalk.method({
-selector: unescape('new'),
+selector: "new",
 category: 'evaluating',
-fn: function () {
-    var self = this;
-    return new self;
-    return self;
-},
+fn: function (){
+var self=this;
+return new self();
+return self;},
 args: [],
-source: unescape('new%0A%09%22Use%20the%20receiver%20as%20a%20JS%20constructor.%20%0A%09*Do%20not*%20use%20this%20method%20to%20instanciate%20Smalltalk%20objects%21%22%0A%09%3Creturn%20new%20self%28%29%3E'),
+source: "new\x0a\x09\x22Use the receiver as a JS constructor. \x0a\x09*Do not* use this method to instanciate Smalltalk objects!\x22\x0a\x09<return new self()>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_newValue_'),
+"_newValue_",
 smalltalk.method({
-selector: unescape('newValue%3A'),
+selector: "newValue:",
 category: 'evaluating',
-fn: function (anObject) {
-    var self = this;
-    return new self(anObject);
-    return self;
-},
+fn: function (anObject){
+var self=this;
+return new self(anObject);
+return self;},
 args: ["anObject"],
-source: unescape('newValue%3A%20anObject%0A%09%22Use%20the%20receiver%20as%20a%20JS%20constructor.%20%0A%09*Do%20not*%20use%20this%20method%20to%20instanciate%20Smalltalk%20objects%21%22%0A%09%3Creturn%20new%20self%28anObject%29%3E'),
+source: "newValue: anObject\x0a\x09\x22Use the receiver as a JS constructor. \x0a\x09*Do not* use this method to instanciate Smalltalk objects!\x22\x0a\x09<return new self(anObject)>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_newValue_value_'),
+"_newValue_value_",
 smalltalk.method({
-selector: unescape('newValue%3Avalue%3A'),
+selector: "newValue:value:",
 category: 'evaluating',
-fn: function (anObject, anObject2) {
-    var self = this;
-    return new self(anObject, anObject2);
-    return self;
-},
+fn: function (anObject, anObject2){
+var self=this;
+return new self(anObject, anObject2);
+return self;},
 args: ["anObject", "anObject2"],
-source: unescape('newValue%3A%20%20anObject%20value%3A%20anObject2%0A%09%22Use%20the%20receiver%20as%20a%20JS%20constructor.%20%0A%09*Do%20not*%20use%20this%20method%20to%20instanciate%20Smalltalk%20objects%21%22%0A%09%3Creturn%20new%20self%28anObject%2C%20anObject2%29%3E'),
+source: "newValue:  anObject value: anObject2\x0a\x09\x22Use the receiver as a JS constructor. \x0a\x09*Do not* use this method to instanciate Smalltalk objects!\x22\x0a\x09<return new self(anObject, anObject2)>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_newValue_value_value_'),
+"_newValue_value_value_",
 smalltalk.method({
-selector: unescape('newValue%3Avalue%3Avalue%3A'),
+selector: "newValue:value:value:",
 category: 'evaluating',
-fn: function (anObject, anObject2, anObject3) {
-    var self = this;
-    return new self(anObject, anObject2);
-    return self;
-},
+fn: function (anObject, anObject2, anObject3){
+var self=this;
+return new self(anObject, anObject2);
+return self;},
 args: ["anObject", "anObject2", "anObject3"],
-source: unescape('newValue%3A%20%20anObject%20value%3A%20anObject2%20value%3A%20anObject3%0A%09%22Use%20the%20receiver%20as%20a%20JS%20constructor.%20%0A%09*Do%20not*%20use%20this%20method%20to%20instanciate%20Smalltalk%20objects%21%22%0A%09%3Creturn%20new%20self%28anObject%2C%20anObject2%29%3E'),
+source: "newValue:  anObject value: anObject2 value: anObject3\x0a\x09\x22Use the receiver as a JS constructor. \x0a\x09*Do not* use this method to instanciate Smalltalk objects!\x22\x0a\x09<return new self(anObject, anObject2)>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_numArgs'),
+"_numArgs",
 smalltalk.method({
-selector: unescape('numArgs'),
+selector: "numArgs",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return self.length;
-    return self;
-},
+fn: function (){
+var self=this;
+return self.length;
+return self;},
 args: [],
-source: unescape('numArgs%0A%09%3Creturn%20self.length%3E'),
+source: "numArgs\x0a\x09<return self.length>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_on_do_'),
+"_on_do_",
 smalltalk.method({
-selector: unescape('on%3Ado%3A'),
+selector: "on:do:",
 category: 'error handling',
-fn: function (anErrorClass, aBlock) {
-    var self = this;
-    return smalltalk.send(self, "_try_catch_", [self, function (error) {return ($receiver = smalltalk.send(error, "_isKindOf_", [anErrorClass])).klass === smalltalk.Boolean ? $receiver ? function () {return smalltalk.send(aBlock, "_value_", [error]);}() : function () {return smalltalk.send(error, "_signal", []);}() : smalltalk.send($receiver, "_ifTrue_ifFalse_", [function () {return smalltalk.send(aBlock, "_value_", [error]);}, function () {return smalltalk.send(error, "_signal", []);}]);}]);
-    return self;
-},
+fn: function (anErrorClass, aBlock){
+var self=this;
+return smalltalk.send(self, "_try_catch_", [self, (function(error){return ((($receiver = smalltalk.send(error, "_isKindOf_", [anErrorClass])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(aBlock, "_value_", [error]);})() : (function(){return smalltalk.send(error, "_signal", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(aBlock, "_value_", [error]);}), (function(){return smalltalk.send(error, "_signal", []);})]));})]);
+return self;},
 args: ["anErrorClass", "aBlock"],
-source: unescape('on%3A%20anErrorClass%20do%3A%20aBlock%0A%09%5Eself%20try%3A%20self%20catch%3A%20%5B%3Aerror%20%7C%0A%09%20%20%20%20%28error%20isKindOf%3A%20anErrorClass%29%20%0A%09%20%20%20%20%20ifTrue%3A%20%5BaBlock%20value%3A%20error%5D%0A%09%20%20%20%20%20ifFalse%3A%20%5Berror%20signal%5D%5D'),
+source: "on: anErrorClass do: aBlock\x0a\x09^self try: self catch: [:error |\x0a\x09    (error isKindOf: anErrorClass) \x0a\x09     ifTrue: [aBlock value: error]\x0a\x09     ifFalse: [error signal]]",
 messageSends: ["try:catch:", "ifTrue:ifFalse:", "isKindOf:", "value:", "signal"],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_timeToRun'),
+"_timeToRun",
 smalltalk.method({
-selector: unescape('timeToRun'),
+selector: "timeToRun",
 category: 'evaluating',
-fn: function () {
-    var self = this;
-    return smalltalk.send(smalltalk.Date || Date, "_millisecondsToRun_", [self]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.send((smalltalk.Date || Date), "_millisecondsToRun_", [self]);
+return self;},
 args: [],
-source: unescape('timeToRun%0A%09%22Answer%20the%20number%20of%20milliseconds%20taken%20to%20execute%20this%20block.%22%0A%0A%09%5E%20Date%20millisecondsToRun%3A%20self'),
+source: "timeToRun\x0a\x09\x22Answer the number of milliseconds taken to execute this block.\x22\x0a\x0a\x09^ Date millisecondsToRun: self",
 messageSends: ["millisecondsToRun:"],
 referencedClasses: ["Date"]
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_value'),
+"_value",
 smalltalk.method({
-selector: unescape('value'),
+selector: "value",
 category: 'evaluating',
-fn: function () {
-    var self = this;
-    return self();
-    return self;
-},
+fn: function (){
+var self=this;
+return self();;
+return self;},
 args: [],
-source: unescape('value%0A%09%22inlined%20in%20the%20Compiler%22%0A%09%3Creturn%20self%28%29%3B%3E'),
+source: "value\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self();>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_value_'),
+"_value_",
 smalltalk.method({
-selector: unescape('value%3A'),
+selector: "value:",
 category: 'evaluating',
-fn: function (anArg) {
-    var self = this;
-    return self(anArg);
-    return self;
-},
+fn: function (anArg){
+var self=this;
+return self(anArg);;
+return self;},
 args: ["anArg"],
-source: unescape('value%3A%20anArg%0A%09%22inlined%20in%20the%20Compiler%22%0A%09%3Creturn%20self%28anArg%29%3B%3E'),
+source: "value: anArg\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self(anArg);>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_value_value_'),
+"_value_value_",
 smalltalk.method({
-selector: unescape('value%3Avalue%3A'),
+selector: "value:value:",
 category: 'evaluating',
-fn: function (firstArg, secondArg) {
-    var self = this;
-    return self(firstArg, secondArg);
-    return self;
-},
+fn: function (firstArg, secondArg){
+var self=this;
+return self(firstArg, secondArg);;
+return self;},
 args: ["firstArg", "secondArg"],
-source: unescape('value%3A%20firstArg%20value%3A%20secondArg%0A%09%22inlined%20in%20the%20Compiler%22%0A%09%3Creturn%20self%28firstArg%2C%20secondArg%29%3B%3E'),
+source: "value: firstArg value: secondArg\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self(firstArg, secondArg);>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_value_value_value_'),
+"_value_value_value_",
 smalltalk.method({
-selector: unescape('value%3Avalue%3Avalue%3A'),
+selector: "value:value:value:",
 category: 'evaluating',
-fn: function (firstArg, secondArg, thirdArg) {
-    var self = this;
-    return self(firstArg, secondArg, thirdArg);
-    return self;
-},
+fn: function (firstArg, secondArg, thirdArg){
+var self=this;
+return self(firstArg, secondArg, thirdArg);;
+return self;},
 args: ["firstArg", "secondArg", "thirdArg"],
-source: unescape('value%3A%20firstArg%20value%3A%20secondArg%20value%3A%20thirdArg%0A%09%22inlined%20in%20the%20Compiler%22%0A%09%3Creturn%20self%28firstArg%2C%20secondArg%2C%20thirdArg%29%3B%3E'),
+source: "value: firstArg value: secondArg value: thirdArg\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<return self(firstArg, secondArg, thirdArg);>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_valueWithInterval_'),
+"_valueWithInterval_",
 smalltalk.method({
-selector: unescape('valueWithInterval%3A'),
+selector: "valueWithInterval:",
 category: 'timeout/interval',
-fn: function (aNumber) {
-    var self = this;
-    return setInterval(self, aNumber);
-    return self;
-},
+fn: function (aNumber){
+var self=this;
+return setInterval(self, aNumber);
+return self;},
 args: ["aNumber"],
-source: unescape('valueWithInterval%3A%20aNumber%0A%09%3Creturn%20setInterval%28self%2C%20aNumber%29%3E'),
+source: "valueWithInterval: aNumber\x0a\x09<return setInterval(self, aNumber)>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_valueWithPossibleArguments_'),
+"_valueWithPossibleArguments_",
 smalltalk.method({
-selector: unescape('valueWithPossibleArguments%3A'),
+selector: "valueWithPossibleArguments:",
 category: 'evaluating',
-fn: function (aCollection) {
-    var self = this;
-    return self.apply(null, aCollection);
-    return self;
-},
+fn: function (aCollection){
+var self=this;
+return self.apply(null, aCollection);;
+return self;},
 args: ["aCollection"],
-source: unescape('valueWithPossibleArguments%3A%20aCollection%0A%09%3Creturn%20self.apply%28null%2C%20aCollection%29%3B%3E'),
+source: "valueWithPossibleArguments: aCollection\x0a\x09<return self.apply(null, aCollection);>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_valueWithTimeout_'),
+"_valueWithTimeout_",
 smalltalk.method({
-selector: unescape('valueWithTimeout%3A'),
+selector: "valueWithTimeout:",
 category: 'timeout/interval',
-fn: function (aNumber) {
-    var self = this;
-    return setTimeout(self, aNumber);
-    return self;
-},
+fn: function (aNumber){
+var self=this;
+return setTimeout(self, aNumber);
+return self;},
 args: ["aNumber"],
-source: unescape('valueWithTimeout%3A%20aNumber%0A%09%3Creturn%20setTimeout%28self%2C%20aNumber%29%3E'),
+source: "valueWithTimeout: aNumber\x0a\x09<return setTimeout(self, aNumber)>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_whileFalse'),
+"_whileFalse",
 smalltalk.method({
-selector: unescape('whileFalse'),
+selector: "whileFalse",
 category: 'controlling',
-fn: function () {
-    var self = this;
-    smalltalk.send(self, "_whileFalse_", [function () {return nil;}]);
-    return self;
-},
+fn: function (){
+var self=this;
+smalltalk.send(self, "_whileFalse_", [(function(){return nil;})]);
+return self;},
 args: [],
-source: unescape('whileFalse%0A%09%22inlined%20in%20the%20Compiler%22%0A%09self%20whileFalse%3A%20%5B%5D'),
+source: "whileFalse\x0a\x09\x22inlined in the Compiler\x22\x0a\x09self whileFalse: []",
 messageSends: ["whileFalse:"],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_whileFalse_'),
+"_whileFalse_",
 smalltalk.method({
-selector: unescape('whileFalse%3A'),
+selector: "whileFalse:",
 category: 'controlling',
-fn: function (aBlock) {
-    var self = this;
-    while (!self()) {
-        aBlock();
-    }
-    return self;
-},
+fn: function (aBlock){
+var self=this;
+while(!self()) {aBlock()};
+return self;},
 args: ["aBlock"],
-source: unescape('whileFalse%3A%20aBlock%0A%09%22inlined%20in%20the%20Compiler%22%0A%09%3Cwhile%28%21self%28%29%29%20%7BaBlock%28%29%7D%3E'),
+source: "whileFalse: aBlock\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<while(!self()) {aBlock()}>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_whileTrue'),
+"_whileTrue",
 smalltalk.method({
-selector: unescape('whileTrue'),
+selector: "whileTrue",
 category: 'controlling',
-fn: function () {
-    var self = this;
-    smalltalk.send(self, "_whileTrue_", [function () {return nil;}]);
-    return self;
-},
+fn: function (){
+var self=this;
+smalltalk.send(self, "_whileTrue_", [(function(){return nil;})]);
+return self;},
 args: [],
-source: unescape('whileTrue%0A%09%22inlined%20in%20the%20Compiler%22%0A%09self%20whileTrue%3A%20%5B%5D'),
+source: "whileTrue\x0a\x09\x22inlined in the Compiler\x22\x0a\x09self whileTrue: []",
 messageSends: ["whileTrue:"],
 referencedClasses: []
 }),
 smalltalk.BlockClosure);
 
 smalltalk.addMethod(
-unescape('_whileTrue_'),
+"_whileTrue_",
 smalltalk.method({
-selector: unescape('whileTrue%3A'),
+selector: "whileTrue:",
 category: 'controlling',
-fn: function (aBlock) {
-    var self = this;
-    while (self()) {
-        aBlock();
-    }
-    return self;
-},
+fn: function (aBlock){
+var self=this;
+while(self()) {aBlock()};
+return self;},
 args: ["aBlock"],
-source: unescape('whileTrue%3A%20aBlock%0A%09%22inlined%20in%20the%20Compiler%22%0A%09%3Cwhile%28self%28%29%29%20%7BaBlock%28%29%7D%3E'),
+source: "whileTrue: aBlock\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<while(self()) {aBlock()}>",
 messageSends: [],
 referencedClasses: []
 }),
@@ -367,208 +342,194 @@ smalltalk.BlockClosure);
 
 
 smalltalk.addClass('CompiledMethod', smalltalk.Object, [], 'Kernel-Methods');
-smalltalk.CompiledMethod.comment=unescape('CompiledMethod%20hold%20the%20source%20and%20compiled%20code%20of%20a%20class%20method.%0A%0AYou%20can%20get%20a%20CompiledMethod%20using%20%60Behavior%3E%3EmethodAt%3A%60%0A%0A%09String%20methodAt%3A%20%27lines%27%0A%0Aand%20read%20the%20source%20code%0A%0A%09%28String%20methodAt%3A%20%27lines%27%29%20source%0A%0ASee%20referenced%20classes%3A%0A%0A%09%28String%20methodAt%3A%20%27lines%27%29%20referencedClasses%0A%0Aor%20messages%20sent%20from%20this%20method%3A%0A%09%0A%09%28String%20methodAt%3A%20%27lines%27%29%20%20messageSends')
+smalltalk.CompiledMethod.comment="CompiledMethod hold the source and compiled code of a class method.\x0a\x0aYou can get a CompiledMethod using `Behavior>>methodAt:`\x0a\x0a\x09String methodAt: 'lines'\x0a\x0aand read the source code\x0a\x0a\x09(String methodAt: 'lines') source\x0a\x0aSee referenced classes:\x0a\x0a\x09(String methodAt: 'lines') referencedClasses\x0a\x0aor messages sent from this method:\x0a\x09\x0a\x09(String methodAt: 'lines')  messageSends"
 smalltalk.addMethod(
-unescape('_arguments'),
+"_arguments",
 smalltalk.method({
-selector: unescape('arguments'),
+selector: "arguments",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return self.args || [];
-    return self;
-},
+fn: function (){
+var self=this;
+return self.args || [];
+return self;},
 args: [],
-source: unescape('arguments%0A%09%3Creturn%20self.args%20%7C%7C%20%5B%5D%3E'),
+source: "arguments\x0a\x09<return self.args || []>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_category'),
+"_category",
 smalltalk.method({
-selector: unescape('category'),
+selector: "category",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return ($receiver = smalltalk.send(self, "_basicAt_", ["category"])) == nil ||
-        $receiver == undefined ? function () {return "";}() : $receiver;
-    return self;
-},
+fn: function (){
+var self=this;
+return (($receiver = smalltalk.send(self, "_basicAt_", ["category"])) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
+return self;},
 args: [],
-source: unescape('category%0A%09%5E%28self%20basicAt%3A%20%27category%27%29%20ifNil%3A%20%5B%27%27%5D'),
+source: "category\x0a\x09^(self basicAt: 'category') ifNil: ['']",
 messageSends: ["ifNil:", "basicAt:"],
 referencedClasses: []
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_category_'),
+"_category_",
 smalltalk.method({
-selector: unescape('category%3A'),
+selector: "category:",
 category: 'accessing',
-fn: function (aString) {
-    var self = this;
-    smalltalk.send(self, "_basicAt_put_", ["category", aString]);
-    return self;
-},
+fn: function (aString){
+var self=this;
+smalltalk.send(self, "_basicAt_put_", ["category", aString]);
+return self;},
 args: ["aString"],
-source: unescape('category%3A%20aString%0A%09self%20basicAt%3A%20%27category%27%20put%3A%20aString'),
+source: "category: aString\x0a\x09self basicAt: 'category' put: aString",
 messageSends: ["basicAt:put:"],
 referencedClasses: []
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_fn'),
+"_fn",
 smalltalk.method({
-selector: unescape('fn'),
+selector: "fn",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_basicAt_", ["fn"]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.send(self, "_basicAt_", ["fn"]);
+return self;},
 args: [],
-source: unescape('fn%0A%09%5Eself%20basicAt%3A%20%27fn%27'),
+source: "fn\x0a\x09^self basicAt: 'fn'",
 messageSends: ["basicAt:"],
 referencedClasses: []
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_fn_'),
+"_fn_",
 smalltalk.method({
-selector: unescape('fn%3A'),
+selector: "fn:",
 category: 'accessing',
-fn: function (aBlock) {
-    var self = this;
-    smalltalk.send(self, "_basicAt_put_", ["fn", aBlock]);
-    return self;
-},
+fn: function (aBlock){
+var self=this;
+smalltalk.send(self, "_basicAt_put_", ["fn", aBlock]);
+return self;},
 args: ["aBlock"],
-source: unescape('fn%3A%20aBlock%0A%09self%20basicAt%3A%20%27fn%27%20put%3A%20aBlock'),
+source: "fn: aBlock\x0a\x09self basicAt: 'fn' put: aBlock",
 messageSends: ["basicAt:put:"],
 referencedClasses: []
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_messageSends'),
+"_messageSends",
 smalltalk.method({
-selector: unescape('messageSends'),
+selector: "messageSends",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_basicAt_", ["messageSends"]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.send(self, "_basicAt_", ["messageSends"]);
+return self;},
 args: [],
-source: unescape('messageSends%0A%09%5Eself%20basicAt%3A%20%27messageSends%27'),
+source: "messageSends\x0a\x09^self basicAt: 'messageSends'",
 messageSends: ["basicAt:"],
 referencedClasses: []
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_methodClass'),
+"_methodClass",
 smalltalk.method({
-selector: unescape('methodClass'),
+selector: "methodClass",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_basicAt_", ["methodClass"]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.send(self, "_basicAt_", ["methodClass"]);
+return self;},
 args: [],
-source: unescape('methodClass%0A%09%5Eself%20basicAt%3A%20%27methodClass%27'),
+source: "methodClass\x0a\x09^self basicAt: 'methodClass'",
 messageSends: ["basicAt:"],
 referencedClasses: []
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_referencedClasses'),
+"_referencedClasses",
 smalltalk.method({
-selector: unescape('referencedClasses'),
+selector: "referencedClasses",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_basicAt_", ["referencedClasses"]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.send(self, "_basicAt_", ["referencedClasses"]);
+return self;},
 args: [],
-source: unescape('referencedClasses%0A%09%5Eself%20basicAt%3A%20%27referencedClasses%27'),
+source: "referencedClasses\x0a\x09^self basicAt: 'referencedClasses'",
 messageSends: ["basicAt:"],
 referencedClasses: []
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_selector'),
+"_selector",
 smalltalk.method({
-selector: unescape('selector'),
+selector: "selector",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return smalltalk.send(self, "_basicAt_", ["selector"]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.send(self, "_basicAt_", ["selector"]);
+return self;},
 args: [],
-source: unescape('selector%0A%09%5Eself%20basicAt%3A%20%27selector%27'),
+source: "selector\x0a\x09^self basicAt: 'selector'",
 messageSends: ["basicAt:"],
 referencedClasses: []
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_selector_'),
+"_selector_",
 smalltalk.method({
-selector: unescape('selector%3A'),
+selector: "selector:",
 category: 'accessing',
-fn: function (aString) {
-    var self = this;
-    smalltalk.send(self, "_basicAt_put_", ["selector", aString]);
-    return self;
-},
+fn: function (aString){
+var self=this;
+smalltalk.send(self, "_basicAt_put_", ["selector", aString]);
+return self;},
 args: ["aString"],
-source: unescape('selector%3A%20aString%0A%09self%20basicAt%3A%20%27selector%27%20put%3A%20aString'),
+source: "selector: aString\x0a\x09self basicAt: 'selector' put: aString",
 messageSends: ["basicAt:put:"],
 referencedClasses: []
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_source'),
+"_source",
 smalltalk.method({
-selector: unescape('source'),
+selector: "source",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return ($receiver = smalltalk.send(self, "_basicAt_", ["source"])) == nil ||
-        $receiver == undefined ? function () {return "";}() : $receiver;
-    return self;
-},
+fn: function (){
+var self=this;
+return (($receiver = smalltalk.send(self, "_basicAt_", ["source"])) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
+return self;},
 args: [],
-source: unescape('source%0A%09%5E%28self%20basicAt%3A%20%27source%27%29%20ifNil%3A%20%5B%27%27%5D'),
+source: "source\x0a\x09^(self basicAt: 'source') ifNil: ['']",
 messageSends: ["ifNil:", "basicAt:"],
 referencedClasses: []
 }),
 smalltalk.CompiledMethod);
 
 smalltalk.addMethod(
-unescape('_source_'),
+"_source_",
 smalltalk.method({
-selector: unescape('source%3A'),
+selector: "source:",
 category: 'accessing',
-fn: function (aString) {
-    var self = this;
-    smalltalk.send(self, "_basicAt_put_", ["source", aString]);
-    return self;
-},
+fn: function (aString){
+var self=this;
+smalltalk.send(self, "_basicAt_put_", ["source", aString]);
+return self;},
 args: ["aString"],
-source: unescape('source%3A%20aString%0A%09self%20basicAt%3A%20%27source%27%20put%3A%20aString'),
+source: "source: aString\x0a\x09self basicAt: 'source' put: aString",
 messageSends: ["basicAt:put:"],
 referencedClasses: []
 }),
@@ -577,104 +538,98 @@ smalltalk.CompiledMethod);
 
 
 smalltalk.addClass('Message', smalltalk.Object, ['selector', 'arguments'], 'Kernel-Methods');
-smalltalk.Message.comment=unescape('Generally%2C%20the%20system%20does%20not%20use%20instances%20of%20Message%20for%20efficiency%20reasons.%0AHowever%2C%20when%20a%20message%20is%20not%20understood%20by%20its%20receiver%2C%20the%20interpreter%20will%20make%20up%20an%20instance%20of%20it%20in%20order%20to%20capture%20the%20information%20involved%20in%20an%20actual%20message%20transmission.%20%0AThis%20instance%20is%20sent%20it%20as%20an%20argument%20with%20the%20message%20%60doesNotUnderstand%3A%60%20to%20the%20receiver.%0A%0ASee%20boot.js%2C%20%60messageNotUnderstood%60%20%20and%20its%20counterpart%20%60Object%3E%3EdoesNotUnderstand%3A%60')
+smalltalk.Message.comment="Generally, the system does not use instances of Message for efficiency reasons.\x0aHowever, when a message is not understood by its receiver, the interpreter will make up an instance of it in order to capture the information involved in an actual message transmission. \x0aThis instance is sent it as an argument with the message `doesNotUnderstand:` to the receiver.\x0a\x0aSee boot.js, `messageNotUnderstood`  and its counterpart `Object>>doesNotUnderstand:`"
 smalltalk.addMethod(
-unescape('_arguments'),
+"_arguments",
 smalltalk.method({
-selector: unescape('arguments'),
+selector: "arguments",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return self['@arguments'];
-    return self;
-},
+fn: function (){
+var self=this;
+return self['@arguments'];
+return self;},
 args: [],
-source: unescape('arguments%0A%09%5Earguments'),
+source: "arguments\x0a\x09^arguments",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.Message);
 
 smalltalk.addMethod(
-unescape('_arguments_'),
+"_arguments_",
 smalltalk.method({
-selector: unescape('arguments%3A'),
+selector: "arguments:",
 category: 'accessing',
-fn: function (anArray) {
-    var self = this;
-    self['@arguments'] = anArray;
-    return self;
-},
+fn: function (anArray){
+var self=this;
+(self['@arguments']=anArray);
+return self;},
 args: ["anArray"],
-source: unescape('arguments%3A%20anArray%0A%09arguments%20%3A%3D%20anArray'),
+source: "arguments: anArray\x0a\x09arguments := anArray",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.Message);
 
 smalltalk.addMethod(
-unescape('_printString'),
+"_printString",
 smalltalk.method({
-selector: unescape('printString'),
+selector: "printString",
 category: 'printing',
-fn: function () {
-    var self = this;
-    return smalltalk.send(smalltalk.String || String, "_streamContents_", [function (aStream) {return function ($rec) {smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_printString", [], smalltalk.Object)]);smalltalk.send($rec, "_nextPutAll_", [unescape("%28")]);smalltalk.send($rec, "_nextPutAll_", [self['@selector']]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%29")]);}(aStream);}]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(aStream){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_printString", [], smalltalk.Message.superclass || nil)]);smalltalk.send($rec, "_nextPutAll_", ["("]);smalltalk.send($rec, "_nextPutAll_", [self['@selector']]);return smalltalk.send($rec, "_nextPutAll_", [")"]);})(aStream);})]);
+return self;},
 args: [],
-source: unescape('printString%0A%09%5E%20String%20streamContents%3A%20%5B%3AaStream%7C%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09%09%09aStream%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09%09%09%09nextPutAll%3A%20super%20printString%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09%09%09%09nextPutAll%3A%20%27%28%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09%09%09%09nextPutAll%3A%20selector%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09%09%09%09nextPutAll%3A%20%27%29%27%20%09%09%09%09%5D'),
+source: "printString\x0a\x09^ String streamContents: [:aStream|  \x0a                                  \x09\x09\x09\x09aStream \x0a                                  \x09\x09\x09\x09\x09nextPutAll: super printString;\x0a                                  \x09\x09\x09\x09\x09nextPutAll: '(';\x0a                                  \x09\x09\x09\x09\x09nextPutAll: selector;\x0a                                  \x09\x09\x09\x09\x09nextPutAll: ')' \x09\x09\x09\x09]",
 messageSends: ["streamContents:", "nextPutAll:", "printString"],
 referencedClasses: ["String"]
 }),
 smalltalk.Message);
 
 smalltalk.addMethod(
-unescape('_selector'),
+"_selector",
 smalltalk.method({
-selector: unescape('selector'),
+selector: "selector",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return self['@selector'];
-    return self;
-},
+fn: function (){
+var self=this;
+return self['@selector'];
+return self;},
 args: [],
-source: unescape('selector%0A%09%5Eselector'),
+source: "selector\x0a\x09^selector",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.Message);
 
 smalltalk.addMethod(
-unescape('_selector_'),
+"_selector_",
 smalltalk.method({
-selector: unescape('selector%3A'),
+selector: "selector:",
 category: 'accessing',
-fn: function (aString) {
-    var self = this;
-    self['@selector'] = aString;
-    return self;
-},
+fn: function (aString){
+var self=this;
+(self['@selector']=aString);
+return self;},
 args: ["aString"],
-source: unescape('selector%3A%20aString%0A%09selector%20%3A%3D%20aString'),
+source: "selector: aString\x0a\x09selector := aString",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.Message);
 
 smalltalk.addMethod(
-unescape('_sendTo_'),
+"_sendTo_",
 smalltalk.method({
-selector: unescape('sendTo%3A'),
+selector: "sendTo:",
 category: 'printing',
-fn: function (anObject) {
-    var self = this;
-    smalltalk.send(smalltalk.send(smalltalk.Smalltalk || Smalltalk, "_current", []), "_send_to_arguments_", [smalltalk.send(self, "_selector", []), anObject, smalltalk.send(self, "_arguments", [])]);
-    return self;
-},
+fn: function (anObject){
+var self=this;
+smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_send_to_arguments_", [smalltalk.send(self, "_selector", []), anObject, smalltalk.send(self, "_arguments", [])]);
+return self;},
 args: ["anObject"],
-source: unescape('sendTo%3A%20anObject%0A%09Smalltalk%20current%20send%3A%20self%20selector%20to%3A%20anObject%20arguments%3A%20self%20arguments'),
+source: "sendTo: anObject\x0a\x09Smalltalk current send: self selector to: anObject arguments: self arguments",
 messageSends: ["send:to:arguments:", "current", "selector", "arguments"],
 referencedClasses: ["Smalltalk"]
 }),
@@ -682,17 +637,16 @@ smalltalk.Message);
 
 
 smalltalk.addMethod(
-unescape('_selector_arguments_'),
+"_selector_arguments_",
 smalltalk.method({
-selector: unescape('selector%3Aarguments%3A'),
+selector: "selector:arguments:",
 category: 'instance creation',
-fn: function (aString, anArray) {
-    var self = this;
-    return function ($rec) {smalltalk.send($rec, "_selector_", [aString]);smalltalk.send($rec, "_arguments_", [anArray]);return smalltalk.send($rec, "_yourself", []);}(smalltalk.send(self, "_new", []));
-    return self;
-},
+fn: function (aString, anArray){
+var self=this;
+return (function($rec){smalltalk.send($rec, "_selector_", [aString]);smalltalk.send($rec, "_arguments_", [anArray]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
+return self;},
 args: ["aString", "anArray"],
-source: unescape('selector%3A%20aString%20arguments%3A%20anArray%0A%09%5Eself%20new%0A%09%09selector%3A%20aString%3B%0A%09%09arguments%3A%20anArray%3B%0A%09%09yourself'),
+source: "selector: aString arguments: anArray\x0a\x09^self new\x0a\x09\x09selector: aString;\x0a\x09\x09arguments: anArray;\x0a\x09\x09yourself",
 messageSends: ["selector:", "arguments:", "yourself", "new"],
 referencedClasses: []
 }),
@@ -700,104 +654,98 @@ smalltalk.Message.klass);
 
 
 smalltalk.addClass('MethodContext', smalltalk.Object, [], 'Kernel-Methods');
-smalltalk.MethodContext.comment=unescape('MethodContext%20holds%20all%20the%20dynamic%20state%20associated%20with%20the%20execution%20of%20either%20a%20method%20activation%20resulting%20from%20a%20message%20send.%20That%20is%20used%20to%20build%20the%20call%20stack%20while%20debugging.%0A%20%20%0AMethodContext%20instances%20are%20JavaScript%20%60SmalltalkMethodContext%60%20objects%20defined%20in%20boot.js%20%0A%0ACurrent%20limitation%3A%20MethodContext%20instances%20are%20not%20created%20on%20Block%20evaluation.%20That%20means%20it%27s%20actually%20impossible%20to%20debug%20inside%20a%20Block.')
+smalltalk.MethodContext.comment="MethodContext holds all the dynamic state associated with the execution of either a method activation resulting from a message send. That is used to build the call stack while debugging.\x0a  \x0aMethodContext instances are JavaScript `SmalltalkMethodContext` objects defined in boot.js \x0a\x0aCurrent limitation: MethodContext instances are not created on Block evaluation. That means it's actually impossible to debug inside a Block."
 smalltalk.addMethod(
-unescape('_asString'),
+"_asString",
 smalltalk.method({
-selector: unescape('asString'),
+selector: "asString",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_receiver", []), "_class", []), "_printString", []), "__comma", [unescape("%20%3E%3E%20")]), "__comma", [smalltalk.send(self, "_selector", [])]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_receiver", []), "_class", []), "_printString", []), "__comma", [" >> "]), "__comma", [smalltalk.send(self, "_selector", [])]);
+return self;},
 args: [],
-source: unescape('asString%0A%09%5Eself%20receiver%20class%20printString%2C%20%27%20%3E%3E%20%27%2C%20self%20selector'),
-messageSends: [unescape("%2C"), "printString", "class", "receiver", "selector"],
+source: "asString\x0a\x09^self receiver class printString, ' >> ', self selector",
+messageSends: [",", "printString", "class", "receiver", "selector"],
 referencedClasses: []
 }),
 smalltalk.MethodContext);
 
 smalltalk.addMethod(
-unescape('_home'),
+"_home",
 smalltalk.method({
-selector: unescape('home'),
+selector: "home",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return self.homeContext;
-    return self;
-},
+fn: function (){
+var self=this;
+return self.homeContext;
+return self;},
 args: [],
-source: unescape('home%0A%09%3Creturn%20self.homeContext%3E'),
+source: "home\x0a\x09<return self.homeContext>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.MethodContext);
 
 smalltalk.addMethod(
-unescape('_printString'),
+"_printString",
 smalltalk.method({
-selector: unescape('printString'),
+selector: "printString",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_printString", [], smalltalk.Object), "__comma", [unescape("%28")]), "__comma", [smalltalk.send(self, "_asString", [])]), "__comma", [unescape("%29")]);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_printString", [], smalltalk.MethodContext.superclass || nil), "__comma", ["("]), "__comma", [smalltalk.send(self, "_asString", [])]), "__comma", [")"]);
+return self;},
 args: [],
-source: unescape('printString%0A%09%5Esuper%20printString%2C%20%27%28%27%2C%20self%20asString%2C%20%27%29%27'),
-messageSends: [unescape("%2C"), "printString", "asString"],
+source: "printString\x0a\x09^super printString, '(', self asString, ')'",
+messageSends: [",", "printString", "asString"],
 referencedClasses: []
 }),
 smalltalk.MethodContext);
 
 smalltalk.addMethod(
-unescape('_receiver'),
+"_receiver",
 smalltalk.method({
-selector: unescape('receiver'),
+selector: "receiver",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return self.receiver;
-    return self;
-},
+fn: function (){
+var self=this;
+return self.receiver;
+return self;},
 args: [],
-source: unescape('receiver%0A%09%3Creturn%20self.receiver%3E'),
+source: "receiver\x0a\x09<return self.receiver>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.MethodContext);
 
 smalltalk.addMethod(
-unescape('_selector'),
+"_selector",
 smalltalk.method({
-selector: unescape('selector'),
+selector: "selector",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return smalltalk.convertSelector(self.selector);
-    return self;
-},
+fn: function (){
+var self=this;
+return smalltalk.convertSelector(self.selector);
+return self;},
 args: [],
-source: unescape('selector%0A%09%3Creturn%20smalltalk.convertSelector%28self.selector%29%3E'),
+source: "selector\x0a\x09<return smalltalk.convertSelector(self.selector)>",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.MethodContext);
 
 smalltalk.addMethod(
-unescape('_temps'),
+"_temps",
 smalltalk.method({
-selector: unescape('temps'),
+selector: "temps",
 category: 'accessing',
-fn: function () {
-    var self = this;
-    return self.temps;
-    return self;
-},
+fn: function (){
+var self=this;
+return self.temps;
+return self;},
 args: [],
-source: unescape('temps%0A%09%3Creturn%20self.temps%3E'),
+source: "temps\x0a\x09<return self.temps>",
 messageSends: [],
 referencedClasses: []
 }),

Dosya farkı çok büyük olduğundan ihmal edildi
+ 261 - 318
js/Kernel-Objects.deploy.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 261 - 318
js/Kernel-Objects.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 123 - 123
js/Kernel-Tests.deploy.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 123 - 123
js/Kernel-Tests.js


+ 24 - 24
js/Kernel-Transcript.deploy.js

@@ -1,9 +1,9 @@
 smalltalk.addPackage('Kernel-Transcript', {});
 smalltalk.addClass('ConsoleTranscript', smalltalk.Object, ['textarea'], 'Kernel-Transcript');
 smalltalk.addMethod(
-unescape('_clear'),
+"_clear",
 smalltalk.method({
-selector: unescape('clear'),
+selector: "clear",
 fn: function (){
 var self=this;
 
@@ -12,9 +12,9 @@ return self;}
 smalltalk.ConsoleTranscript);
 
 smalltalk.addMethod(
-unescape('_cr'),
+"_cr",
 smalltalk.method({
-selector: unescape('cr'),
+selector: "cr",
 fn: function (){
 var self=this;
 
@@ -23,9 +23,9 @@ return self;}
 smalltalk.ConsoleTranscript);
 
 smalltalk.addMethod(
-unescape('_open'),
+"_open",
 smalltalk.method({
-selector: unescape('open'),
+selector: "open",
 fn: function (){
 var self=this;
 
@@ -34,9 +34,9 @@ return self;}
 smalltalk.ConsoleTranscript);
 
 smalltalk.addMethod(
-unescape('_show_'),
+"_show_",
 smalltalk.method({
-selector: unescape('show%3A'),
+selector: "show:",
 fn: function (anObject){
 var self=this;
 var string=nil;
@@ -48,9 +48,9 @@ smalltalk.ConsoleTranscript);
 
 
 smalltalk.addMethod(
-unescape('_initialize'),
+"_initialize",
 smalltalk.method({
-selector: unescape('initialize'),
+selector: "initialize",
 fn: function (){
 var self=this;
 smalltalk.send((smalltalk.Transcript || Transcript), "_register_", [smalltalk.send(self, "_new", [])]);
@@ -63,9 +63,9 @@ smalltalk.addClass('Transcript', smalltalk.Object, ['textarea'], 'Kernel-Transcr
 
 smalltalk.Transcript.klass.iVarNames = ['current'];
 smalltalk.addMethod(
-unescape('_clear'),
+"_clear",
 smalltalk.method({
-selector: unescape('clear'),
+selector: "clear",
 fn: function (){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_current", []), "_clear", []);
@@ -74,9 +74,9 @@ return self;}
 smalltalk.Transcript.klass);
 
 smalltalk.addMethod(
-unescape('_cr'),
+"_cr",
 smalltalk.method({
-selector: unescape('cr'),
+selector: "cr",
 fn: function (){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_current", []), "_show_", [smalltalk.send((smalltalk.String || String), "_cr", [])]);
@@ -85,9 +85,9 @@ return self;}
 smalltalk.Transcript.klass);
 
 smalltalk.addMethod(
-unescape('_current'),
+"_current",
 smalltalk.method({
-selector: unescape('current'),
+selector: "current",
 fn: function (){
 var self=this;
 return self['@current'];
@@ -96,9 +96,9 @@ return self;}
 smalltalk.Transcript.klass);
 
 smalltalk.addMethod(
-unescape('_new'),
+"_new",
 smalltalk.method({
-selector: unescape('new'),
+selector: "new",
 fn: function (){
 var self=this;
 smalltalk.send(self, "_shouldNotImplement", []);
@@ -107,9 +107,9 @@ return self;}
 smalltalk.Transcript.klass);
 
 smalltalk.addMethod(
-unescape('_open'),
+"_open",
 smalltalk.method({
-selector: unescape('open'),
+selector: "open",
 fn: function (){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_current", []), "_open", []);
@@ -118,9 +118,9 @@ return self;}
 smalltalk.Transcript.klass);
 
 smalltalk.addMethod(
-unescape('_register_'),
+"_register_",
 smalltalk.method({
-selector: unescape('register%3A'),
+selector: "register:",
 fn: function (aTranscript){
 var self=this;
 (self['@current']=aTranscript);
@@ -129,9 +129,9 @@ return self;}
 smalltalk.Transcript.klass);
 
 smalltalk.addMethod(
-unescape('_show_'),
+"_show_",
 smalltalk.method({
-selector: unescape('show%3A'),
+selector: "show:",
 fn: function (anObject){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_current", []), "_show_", [anObject]);

+ 36 - 36
js/Kernel-Transcript.js

@@ -1,57 +1,57 @@
 smalltalk.addPackage('Kernel-Transcript', {});
 smalltalk.addClass('ConsoleTranscript', smalltalk.Object, ['textarea'], 'Kernel-Transcript');
 smalltalk.addMethod(
-unescape('_clear'),
+"_clear",
 smalltalk.method({
-selector: unescape('clear'),
+selector: "clear",
 category: 'printing',
 fn: function (){
 var self=this;
 
 return self;},
 args: [],
-source: unescape('clear%0A%09%22no%20op%22'),
+source: "clear\x0a\x09\x22no op\x22",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.ConsoleTranscript);
 
 smalltalk.addMethod(
-unescape('_cr'),
+"_cr",
 smalltalk.method({
-selector: unescape('cr'),
+selector: "cr",
 category: 'printing',
 fn: function (){
 var self=this;
 
 return self;},
 args: [],
-source: unescape('cr%0A%09%22no%20op%22'),
+source: "cr\x0a\x09\x22no op\x22",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.ConsoleTranscript);
 
 smalltalk.addMethod(
-unescape('_open'),
+"_open",
 smalltalk.method({
-selector: unescape('open'),
+selector: "open",
 category: 'actions',
 fn: function (){
 var self=this;
 
 return self;},
 args: [],
-source: unescape('open'),
+source: "open",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.ConsoleTranscript);
 
 smalltalk.addMethod(
-unescape('_show_'),
+"_show_",
 smalltalk.method({
-selector: unescape('show%3A'),
+selector: "show:",
 category: 'printing',
 fn: function (anObject){
 var self=this;
@@ -60,7 +60,7 @@ var string=nil;
 console.log(String(string));
 return self;},
 args: ["anObject"],
-source: unescape('show%3A%20anObject%0A%09%7C%20string%20%7C%0A%09string%20%3A%3D%20anObject%20asString.%0A%09%3Cconsole.log%28String%28string%29%29%3E'),
+source: "show: anObject\x0a\x09| string |\x0a\x09string := anObject asString.\x0a\x09<console.log(String(string))>",
 messageSends: ["asString"],
 referencedClasses: []
 }),
@@ -68,16 +68,16 @@ smalltalk.ConsoleTranscript);
 
 
 smalltalk.addMethod(
-unescape('_initialize'),
+"_initialize",
 smalltalk.method({
-selector: unescape('initialize'),
+selector: "initialize",
 category: 'initialization',
 fn: function (){
 var self=this;
 smalltalk.send((smalltalk.Transcript || Transcript), "_register_", [smalltalk.send(self, "_new", [])]);
 return self;},
 args: [],
-source: unescape('initialize%0A%09Transcript%20register%3A%20self%20new'),
+source: "initialize\x0a\x09Transcript register: self new",
 messageSends: ["register:", "new"],
 referencedClasses: ["Transcript"]
 }),
@@ -88,112 +88,112 @@ smalltalk.addClass('Transcript', smalltalk.Object, ['textarea'], 'Kernel-Transcr
 
 smalltalk.Transcript.klass.iVarNames = ['current'];
 smalltalk.addMethod(
-unescape('_clear'),
+"_clear",
 smalltalk.method({
-selector: unescape('clear'),
+selector: "clear",
 category: 'printing',
 fn: function (){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_current", []), "_clear", []);
 return self;},
 args: [],
-source: unescape('clear%0A%20%20%20%20self%20current%20clear'),
+source: "clear\x0a    self current clear",
 messageSends: ["clear", "current"],
 referencedClasses: []
 }),
 smalltalk.Transcript.klass);
 
 smalltalk.addMethod(
-unescape('_cr'),
+"_cr",
 smalltalk.method({
-selector: unescape('cr'),
+selector: "cr",
 category: 'printing',
 fn: function (){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_current", []), "_show_", [smalltalk.send((smalltalk.String || String), "_cr", [])]);
 return self;},
 args: [],
-source: unescape('cr%0A%20%20%20%20self%20current%20show%3A%20String%20cr'),
+source: "cr\x0a    self current show: String cr",
 messageSends: ["show:", "current", "cr"],
 referencedClasses: ["String"]
 }),
 smalltalk.Transcript.klass);
 
 smalltalk.addMethod(
-unescape('_current'),
+"_current",
 smalltalk.method({
-selector: unescape('current'),
+selector: "current",
 category: 'instance creation',
 fn: function (){
 var self=this;
 return self['@current'];
 return self;},
 args: [],
-source: unescape('current%0A%20%20%20%20%5Ecurrent'),
+source: "current\x0a    ^current",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.Transcript.klass);
 
 smalltalk.addMethod(
-unescape('_new'),
+"_new",
 smalltalk.method({
-selector: unescape('new'),
+selector: "new",
 category: 'instance creation',
 fn: function (){
 var self=this;
 smalltalk.send(self, "_shouldNotImplement", []);
 return self;},
 args: [],
-source: unescape('new%0A%20%20%20%20self%20shouldNotImplement'),
+source: "new\x0a    self shouldNotImplement",
 messageSends: ["shouldNotImplement"],
 referencedClasses: []
 }),
 smalltalk.Transcript.klass);
 
 smalltalk.addMethod(
-unescape('_open'),
+"_open",
 smalltalk.method({
-selector: unescape('open'),
+selector: "open",
 category: 'instance creation',
 fn: function (){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_current", []), "_open", []);
 return self;},
 args: [],
-source: unescape('open%0A%20%20%20%20self%20current%20open'),
+source: "open\x0a    self current open",
 messageSends: ["open", "current"],
 referencedClasses: []
 }),
 smalltalk.Transcript.klass);
 
 smalltalk.addMethod(
-unescape('_register_'),
+"_register_",
 smalltalk.method({
-selector: unescape('register%3A'),
+selector: "register:",
 category: 'instance creation',
 fn: function (aTranscript){
 var self=this;
 (self['@current']=aTranscript);
 return self;},
 args: ["aTranscript"],
-source: unescape('register%3A%20aTranscript%0A%09current%20%3A%3D%20aTranscript'),
+source: "register: aTranscript\x0a\x09current := aTranscript",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.Transcript.klass);
 
 smalltalk.addMethod(
-unescape('_show_'),
+"_show_",
 smalltalk.method({
-selector: unescape('show%3A'),
+selector: "show:",
 category: 'printing',
 fn: function (anObject){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_current", []), "_show_", [anObject]);
 return self;},
 args: ["anObject"],
-source: unescape('show%3A%20anObject%0A%20%20%20%20self%20current%20show%3A%20anObject'),
+source: "show: anObject\x0a    self current show: anObject",
 messageSends: ["show:", "current"],
 referencedClasses: []
 }),

+ 62 - 62
js/SUnit.deploy.js

@@ -1,9 +1,9 @@
 smalltalk.addPackage('SUnit', {});
 smalltalk.addClass('TestCase', smalltalk.Object, ['testSelector'], 'SUnit');
 smalltalk.addMethod(
-unescape('_assert_'),
+"_assert_",
 smalltalk.method({
-selector: unescape('assert%3A'),
+selector: "assert:",
 fn: function (aBoolean){
 var self=this;
 smalltalk.send(self, "_assert_description_", [aBoolean, "Assertion failed"]);
@@ -12,9 +12,9 @@ return self;}
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_assert_description_'),
+"_assert_description_",
 smalltalk.method({
-selector: unescape('assert%3Adescription%3A'),
+selector: "assert:description:",
 fn: function (aBoolean, aString){
 var self=this;
 ((($receiver = aBoolean).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_signalFailure_", [aString]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_signalFailure_", [aString]);})]));
@@ -23,9 +23,9 @@ return self;}
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_assert_equals_'),
+"_assert_equals_",
 smalltalk.method({
-selector: unescape('assert%3Aequals%3A'),
+selector: "assert:equals:",
 fn: function (expected, actual){
 var self=this;
 return smalltalk.send(self, "_assert_description_", [smalltalk.send(expected, "__eq", [actual]), smalltalk.send(smalltalk.send(smalltalk.send("Expected: ", "__comma", [smalltalk.send(expected, "_asString", [])]), "__comma", [" but was: "]), "__comma", [smalltalk.send(actual, "_asString", [])])]);
@@ -34,9 +34,9 @@ return self;}
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_deny_'),
+"_deny_",
 smalltalk.method({
-selector: unescape('deny%3A'),
+selector: "deny:",
 fn: function (aBoolean){
 var self=this;
 smalltalk.send(self, "_assert_", [smalltalk.send(aBoolean, "_not", [])]);
@@ -45,9 +45,9 @@ return self;}
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_performTestFor_'),
+"_performTestFor_",
 smalltalk.method({
-selector: unescape('performTestFor%3A'),
+selector: "performTestFor:",
 fn: function (aResult){
 var self=this;
 smalltalk.send((function(){return smalltalk.send((function(){return smalltalk.send(self, "_perform_", [smalltalk.send(self, "_selector", [])]);}), "_on_do_", [(smalltalk.TestFailure || TestFailure), (function(ex){return smalltalk.send(aResult, "_addFailure_", [self]);})]);}), "_on_do_", [(smalltalk.Error || Error), (function(ex){return smalltalk.send(aResult, "_addError_", [self]);})]);
@@ -56,9 +56,9 @@ return self;}
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_runCaseFor_'),
+"_runCaseFor_",
 smalltalk.method({
-selector: unescape('runCaseFor%3A'),
+selector: "runCaseFor:",
 fn: function (aTestResult){
 var self=this;
 smalltalk.send(self, "_setUp", []);
@@ -70,9 +70,9 @@ return self;}
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_selector'),
+"_selector",
 smalltalk.method({
-selector: unescape('selector'),
+selector: "selector",
 fn: function (){
 var self=this;
 return self['@testSelector'];
@@ -81,9 +81,9 @@ return self;}
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_setTestSelector_'),
+"_setTestSelector_",
 smalltalk.method({
-selector: unescape('setTestSelector%3A'),
+selector: "setTestSelector:",
 fn: function (aSelector){
 var self=this;
 (self['@testSelector']=aSelector);
@@ -92,9 +92,9 @@ return self;}
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_setUp'),
+"_setUp",
 smalltalk.method({
-selector: unescape('setUp'),
+selector: "setUp",
 fn: function (){
 var self=this;
 
@@ -103,9 +103,9 @@ return self;}
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_should_'),
+"_should_",
 smalltalk.method({
-selector: unescape('should%3A'),
+selector: "should:",
 fn: function (aBlock){
 var self=this;
 smalltalk.send(self, "_assert_", [smalltalk.send(aBlock, "_value", [])]);
@@ -114,9 +114,9 @@ return self;}
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_should_raise_'),
+"_should_raise_",
 smalltalk.method({
-selector: unescape('should%3Araise%3A'),
+selector: "should:raise:",
 fn: function (aBlock, anExceptionClass){
 var self=this;
 smalltalk.send(self, "_assert_", [smalltalk.send((function(){smalltalk.send(aBlock, "_value", []);return false;}), "_on_do_", [anExceptionClass, (function(ex){return true;})])]);
@@ -125,9 +125,9 @@ return self;}
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_signalFailure_'),
+"_signalFailure_",
 smalltalk.method({
-selector: unescape('signalFailure%3A'),
+selector: "signalFailure:",
 fn: function (aString){
 var self=this;
 (function($rec){smalltalk.send($rec, "_messageText_", [aString]);return smalltalk.send($rec, "_signal", []);})(smalltalk.send((smalltalk.TestFailure || TestFailure), "_new", []));
@@ -136,9 +136,9 @@ return self;}
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_tearDown'),
+"_tearDown",
 smalltalk.method({
-selector: unescape('tearDown'),
+selector: "tearDown",
 fn: function (){
 var self=this;
 
@@ -148,9 +148,9 @@ smalltalk.TestCase);
 
 
 smalltalk.addMethod(
-unescape('_allTestSelectors'),
+"_allTestSelectors",
 smalltalk.method({
-selector: unescape('allTestSelectors'),
+selector: "allTestSelectors",
 fn: function (){
 var self=this;
 var selectors=nil;
@@ -162,9 +162,9 @@ return self;}
 smalltalk.TestCase.klass);
 
 smalltalk.addMethod(
-unescape('_buildSuite'),
+"_buildSuite",
 smalltalk.method({
-selector: unescape('buildSuite'),
+selector: "buildSuite",
 fn: function (){
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_allTestSelectors", []), "_collect_", [(function(each){return smalltalk.send(self, "_selector_", [each]);})]);
@@ -173,9 +173,9 @@ return self;}
 smalltalk.TestCase.klass);
 
 smalltalk.addMethod(
-unescape('_lookupHierarchyRoot'),
+"_lookupHierarchyRoot",
 smalltalk.method({
-selector: unescape('lookupHierarchyRoot'),
+selector: "lookupHierarchyRoot",
 fn: function (){
 var self=this;
 return (smalltalk.TestCase || TestCase);
@@ -184,9 +184,9 @@ return self;}
 smalltalk.TestCase.klass);
 
 smalltalk.addMethod(
-unescape('_selector_'),
+"_selector_",
 smalltalk.method({
-selector: unescape('selector%3A'),
+selector: "selector:",
 fn: function (aSelector){
 var self=this;
 return (function($rec){smalltalk.send($rec, "_setTestSelector_", [aSelector]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
@@ -195,9 +195,9 @@ return self;}
 smalltalk.TestCase.klass);
 
 smalltalk.addMethod(
-unescape('_shouldInheritSelectors'),
+"_shouldInheritSelectors",
 smalltalk.method({
-selector: unescape('shouldInheritSelectors'),
+selector: "shouldInheritSelectors",
 fn: function (){
 var self=this;
 return smalltalk.send(self, "_~_eq", [smalltalk.send(self, "_lookupHierarchyRoot", [])]);
@@ -206,12 +206,12 @@ return self;}
 smalltalk.TestCase.klass);
 
 smalltalk.addMethod(
-unescape('_testSelectors'),
+"_testSelectors",
 smalltalk.method({
-selector: unescape('testSelectors'),
+selector: "testSelectors",
 fn: function (){
 var self=this;
-return smalltalk.send(smalltalk.send(smalltalk.send(self, "_methodDictionary", []), "_keys", []), "_select_", [(function(each){return smalltalk.send(each, "_match_", [unescape("%5Etest")]);})]);
+return smalltalk.send(smalltalk.send(smalltalk.send(self, "_methodDictionary", []), "_keys", []), "_select_", [(function(each){return smalltalk.send(each, "_match_", ["^test"]);})]);
 return self;}
 }),
 smalltalk.TestCase.klass);
@@ -222,9 +222,9 @@ smalltalk.addClass('TestFailure', smalltalk.Error, [], 'SUnit');
 
 smalltalk.addClass('TestResult', smalltalk.Object, ['timestamp', 'runs', 'errors', 'failures', 'total'], 'SUnit');
 smalltalk.addMethod(
-unescape('_addError_'),
+"_addError_",
 smalltalk.method({
-selector: unescape('addError%3A'),
+selector: "addError:",
 fn: function (anError){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_errors", []), "_add_", [anError]);
@@ -233,9 +233,9 @@ return self;}
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_addFailure_'),
+"_addFailure_",
 smalltalk.method({
-selector: unescape('addFailure%3A'),
+selector: "addFailure:",
 fn: function (aFailure){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_failures", []), "_add_", [aFailure]);
@@ -244,9 +244,9 @@ return self;}
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_errors'),
+"_errors",
 smalltalk.method({
-selector: unescape('errors'),
+selector: "errors",
 fn: function (){
 var self=this;
 return self['@errors'];
@@ -255,9 +255,9 @@ return self;}
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_failures'),
+"_failures",
 smalltalk.method({
-selector: unescape('failures'),
+selector: "failures",
 fn: function (){
 var self=this;
 return self['@failures'];
@@ -266,9 +266,9 @@ return self;}
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_increaseRuns'),
+"_increaseRuns",
 smalltalk.method({
-selector: unescape('increaseRuns'),
+selector: "increaseRuns",
 fn: function (){
 var self=this;
 (self['@runs']=((($receiver = self['@runs']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));
@@ -277,12 +277,12 @@ return self;}
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_initialize'),
+"_initialize",
 smalltalk.method({
-selector: unescape('initialize'),
+selector: "initialize",
 fn: function (){
 var self=this;
-smalltalk.send(self, "_initialize", [], smalltalk.Object);
+smalltalk.send(self, "_initialize", [], smalltalk.TestResult.superclass || nil);
 (self['@timestamp']=smalltalk.send((smalltalk.Date || Date), "_now", []));
 (self['@runs']=(0));
 (self['@errors']=smalltalk.send((smalltalk.Array || Array), "_new", []));
@@ -293,9 +293,9 @@ return self;}
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_runs'),
+"_runs",
 smalltalk.method({
-selector: unescape('runs'),
+selector: "runs",
 fn: function (){
 var self=this;
 return self['@runs'];
@@ -304,9 +304,9 @@ return self;}
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_status'),
+"_status",
 smalltalk.method({
-selector: unescape('status'),
+selector: "status",
 fn: function (){
 var self=this;
 return ((($receiver = smalltalk.send(smalltalk.send(self, "_errors", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(self, "_failures", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "success";})() : (function(){return "failure";})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "success";}), (function(){return "failure";})]));})() : (function(){return "error";})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(self, "_failures", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "success";})() : (function(){return "failure";})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "success";}), (function(){return "failure";})]));}), (function(){return "error";})]));
@@ -315,9 +315,9 @@ return self;}
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_timestamp'),
+"_timestamp",
 smalltalk.method({
-selector: unescape('timestamp'),
+selector: "timestamp",
 fn: function (){
 var self=this;
 return self['@timestamp'];
@@ -326,9 +326,9 @@ return self;}
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_total'),
+"_total",
 smalltalk.method({
-selector: unescape('total'),
+selector: "total",
 fn: function (){
 var self=this;
 return self['@total'];
@@ -337,9 +337,9 @@ return self;}
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_total_'),
+"_total_",
 smalltalk.method({
-selector: unescape('total%3A'),
+selector: "total:",
 fn: function (aNumber){
 var self=this;
 (self['@total']=aNumber);

+ 95 - 95
js/SUnit.js

@@ -1,89 +1,89 @@
 smalltalk.addPackage('SUnit', {});
 smalltalk.addClass('TestCase', smalltalk.Object, ['testSelector'], 'SUnit');
 smalltalk.addMethod(
-unescape('_assert_'),
+"_assert_",
 smalltalk.method({
-selector: unescape('assert%3A'),
+selector: "assert:",
 category: 'testing',
 fn: function (aBoolean){
 var self=this;
 smalltalk.send(self, "_assert_description_", [aBoolean, "Assertion failed"]);
 return self;},
 args: ["aBoolean"],
-source: unescape('assert%3A%20aBoolean%0A%09self%20assert%3A%20aBoolean%20description%3A%20%27Assertion%20failed%27'),
+source: "assert: aBoolean\x0a\x09self assert: aBoolean description: 'Assertion failed'",
 messageSends: ["assert:description:"],
 referencedClasses: []
 }),
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_assert_description_'),
+"_assert_description_",
 smalltalk.method({
-selector: unescape('assert%3Adescription%3A'),
+selector: "assert:description:",
 category: 'testing',
 fn: function (aBoolean, aString){
 var self=this;
 ((($receiver = aBoolean).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_signalFailure_", [aString]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_signalFailure_", [aString]);})]));
 return self;},
 args: ["aBoolean", "aString"],
-source: unescape('assert%3A%20aBoolean%20description%3A%20aString%0A%09aBoolean%20ifFalse%3A%20%5Bself%20signalFailure%3A%20aString%5D'),
+source: "assert: aBoolean description: aString\x0a\x09aBoolean ifFalse: [self signalFailure: aString]",
 messageSends: ["ifFalse:", "signalFailure:"],
 referencedClasses: []
 }),
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_assert_equals_'),
+"_assert_equals_",
 smalltalk.method({
-selector: unescape('assert%3Aequals%3A'),
+selector: "assert:equals:",
 category: 'testing',
 fn: function (expected, actual){
 var self=this;
 return smalltalk.send(self, "_assert_description_", [smalltalk.send(expected, "__eq", [actual]), smalltalk.send(smalltalk.send(smalltalk.send("Expected: ", "__comma", [smalltalk.send(expected, "_asString", [])]), "__comma", [" but was: "]), "__comma", [smalltalk.send(actual, "_asString", [])])]);
 return self;},
 args: ["expected", "actual"],
-source: unescape('assert%3A%20expected%20equals%3A%20actual%0A%09%5E%20self%20assert%3A%20%28expected%20%3D%20actual%29%20description%3A%20%27Expected%3A%20%27%2C%20expected%20asString%2C%20%27%20but%20was%3A%20%27%2C%20actual%20asString'),
-messageSends: ["assert:description:", unescape("%3D"), unescape("%2C"), "asString"],
+source: "assert: expected equals: actual\x0a\x09^ self assert: (expected = actual) description: 'Expected: ', expected asString, ' but was: ', actual asString",
+messageSends: ["assert:description:", "=", ",", "asString"],
 referencedClasses: []
 }),
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_deny_'),
+"_deny_",
 smalltalk.method({
-selector: unescape('deny%3A'),
+selector: "deny:",
 category: 'testing',
 fn: function (aBoolean){
 var self=this;
 smalltalk.send(self, "_assert_", [smalltalk.send(aBoolean, "_not", [])]);
 return self;},
 args: ["aBoolean"],
-source: unescape('deny%3A%20aBoolean%0A%09self%20assert%3A%20aBoolean%20not'),
+source: "deny: aBoolean\x0a\x09self assert: aBoolean not",
 messageSends: ["assert:", "not"],
 referencedClasses: []
 }),
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_performTestFor_'),
+"_performTestFor_",
 smalltalk.method({
-selector: unescape('performTestFor%3A'),
+selector: "performTestFor:",
 category: 'running',
 fn: function (aResult){
 var self=this;
 smalltalk.send((function(){return smalltalk.send((function(){return smalltalk.send(self, "_perform_", [smalltalk.send(self, "_selector", [])]);}), "_on_do_", [(smalltalk.TestFailure || TestFailure), (function(ex){return smalltalk.send(aResult, "_addFailure_", [self]);})]);}), "_on_do_", [(smalltalk.Error || Error), (function(ex){return smalltalk.send(aResult, "_addError_", [self]);})]);
 return self;},
 args: ["aResult"],
-source: unescape('performTestFor%3A%20aResult%0A%09%5B%5Bself%20perform%3A%20self%20selector%5D%0A%09%09on%3A%20TestFailure%20do%3A%20%5B%3Aex%20%7C%20aResult%20addFailure%3A%20self%5D%5D%0A%09%09on%3A%20Error%20do%3A%20%5B%3Aex%20%7C%20aResult%20addError%3A%20self%5D'),
+source: "performTestFor: aResult\x0a\x09[[self perform: self selector]\x0a\x09\x09on: TestFailure do: [:ex | aResult addFailure: self]]\x0a\x09\x09on: Error do: [:ex | aResult addError: self]",
 messageSends: ["on:do:", "perform:", "selector", "addFailure:", "addError:"],
 referencedClasses: ["TestFailure", "Error"]
 }),
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_runCaseFor_'),
+"_runCaseFor_",
 smalltalk.method({
-selector: unescape('runCaseFor%3A'),
+selector: "runCaseFor:",
 category: 'running',
 fn: function (aTestResult){
 var self=this;
@@ -93,119 +93,119 @@ smalltalk.send(self, "_performTestFor_", [aTestResult]);
 smalltalk.send(self, "_tearDown", []);
 return self;},
 args: ["aTestResult"],
-source: unescape('runCaseFor%3A%20aTestResult%0A%09self%20setUp.%0A%09aTestResult%20increaseRuns.%0A%09self%20performTestFor%3A%20aTestResult.%0A%09self%20tearDown'),
+source: "runCaseFor: aTestResult\x0a\x09self setUp.\x0a\x09aTestResult increaseRuns.\x0a\x09self performTestFor: aTestResult.\x0a\x09self tearDown",
 messageSends: ["setUp", "increaseRuns", "performTestFor:", "tearDown"],
 referencedClasses: []
 }),
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_selector'),
+"_selector",
 smalltalk.method({
-selector: unescape('selector'),
+selector: "selector",
 category: 'accessing',
 fn: function (){
 var self=this;
 return self['@testSelector'];
 return self;},
 args: [],
-source: unescape('selector%0A%09%5EtestSelector'),
+source: "selector\x0a\x09^testSelector",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_setTestSelector_'),
+"_setTestSelector_",
 smalltalk.method({
-selector: unescape('setTestSelector%3A'),
+selector: "setTestSelector:",
 category: 'accessing',
 fn: function (aSelector){
 var self=this;
 (self['@testSelector']=aSelector);
 return self;},
 args: ["aSelector"],
-source: unescape('setTestSelector%3A%20aSelector%0A%09testSelector%20%3A%3D%20aSelector'),
+source: "setTestSelector: aSelector\x0a\x09testSelector := aSelector",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_setUp'),
+"_setUp",
 smalltalk.method({
-selector: unescape('setUp'),
+selector: "setUp",
 category: 'running',
 fn: function (){
 var self=this;
 
 return self;},
 args: [],
-source: unescape('setUp'),
+source: "setUp",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_should_'),
+"_should_",
 smalltalk.method({
-selector: unescape('should%3A'),
+selector: "should:",
 category: 'testing',
 fn: function (aBlock){
 var self=this;
 smalltalk.send(self, "_assert_", [smalltalk.send(aBlock, "_value", [])]);
 return self;},
 args: ["aBlock"],
-source: unescape('should%3A%20aBlock%0A%09self%20assert%3A%20aBlock%20value'),
+source: "should: aBlock\x0a\x09self assert: aBlock value",
 messageSends: ["assert:", "value"],
 referencedClasses: []
 }),
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_should_raise_'),
+"_should_raise_",
 smalltalk.method({
-selector: unescape('should%3Araise%3A'),
+selector: "should:raise:",
 category: 'testing',
 fn: function (aBlock, anExceptionClass){
 var self=this;
 smalltalk.send(self, "_assert_", [smalltalk.send((function(){smalltalk.send(aBlock, "_value", []);return false;}), "_on_do_", [anExceptionClass, (function(ex){return true;})])]);
 return self;},
 args: ["aBlock", "anExceptionClass"],
-source: unescape('should%3A%20aBlock%20raise%3A%20anExceptionClass%0A%09self%20assert%3A%20%28%5BaBlock%20value.%20false%5D%20%0A%09%09on%3A%20anExceptionClass%20%0A%09%09do%3A%20%5B%3Aex%20%7C%20true%5D%29'),
+source: "should: aBlock raise: anExceptionClass\x0a\x09self assert: ([aBlock value. false] \x0a\x09\x09on: anExceptionClass \x0a\x09\x09do: [:ex | true])",
 messageSends: ["assert:", "on:do:", "value"],
 referencedClasses: []
 }),
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_signalFailure_'),
+"_signalFailure_",
 smalltalk.method({
-selector: unescape('signalFailure%3A'),
+selector: "signalFailure:",
 category: 'private',
 fn: function (aString){
 var self=this;
 (function($rec){smalltalk.send($rec, "_messageText_", [aString]);return smalltalk.send($rec, "_signal", []);})(smalltalk.send((smalltalk.TestFailure || TestFailure), "_new", []));
 return self;},
 args: ["aString"],
-source: unescape('signalFailure%3A%20aString%0A%09TestFailure%20new%0A%09%09messageText%3A%20aString%3B%0A%09%09signal'),
+source: "signalFailure: aString\x0a\x09TestFailure new\x0a\x09\x09messageText: aString;\x0a\x09\x09signal",
 messageSends: ["messageText:", "signal", "new"],
 referencedClasses: ["TestFailure"]
 }),
 smalltalk.TestCase);
 
 smalltalk.addMethod(
-unescape('_tearDown'),
+"_tearDown",
 smalltalk.method({
-selector: unescape('tearDown'),
+selector: "tearDown",
 category: 'running',
 fn: function (){
 var self=this;
 
 return self;},
 args: [],
-source: unescape('tearDown'),
+source: "tearDown",
 messageSends: [],
 referencedClasses: []
 }),
@@ -213,9 +213,9 @@ smalltalk.TestCase);
 
 
 smalltalk.addMethod(
-unescape('_allTestSelectors'),
+"_allTestSelectors",
 smalltalk.method({
-selector: unescape('allTestSelectors'),
+selector: "allTestSelectors",
 category: 'accessing',
 fn: function (){
 var self=this;
@@ -225,87 +225,87 @@ var selectors=nil;
 return selectors;
 return self;},
 args: [],
-source: unescape('allTestSelectors%0A%09%7C%20selectors%20%7C%0A%09selectors%20%3A%3D%20self%20testSelectors.%0A%09self%20shouldInheritSelectors%20ifTrue%3A%20%5B%0A%09%09selectors%20addAll%3A%20self%20superclass%20allTestSelectors%5D.%0A%09%5Eselectors'),
+source: "allTestSelectors\x0a\x09| selectors |\x0a\x09selectors := self testSelectors.\x0a\x09self shouldInheritSelectors ifTrue: [\x0a\x09\x09selectors addAll: self superclass allTestSelectors].\x0a\x09^selectors",
 messageSends: ["testSelectors", "ifTrue:", "shouldInheritSelectors", "addAll:", "allTestSelectors", "superclass"],
 referencedClasses: []
 }),
 smalltalk.TestCase.klass);
 
 smalltalk.addMethod(
-unescape('_buildSuite'),
+"_buildSuite",
 smalltalk.method({
-selector: unescape('buildSuite'),
+selector: "buildSuite",
 category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.send(smalltalk.send(self, "_allTestSelectors", []), "_collect_", [(function(each){return smalltalk.send(self, "_selector_", [each]);})]);
 return self;},
 args: [],
-source: unescape('buildSuite%0A%09%5Eself%20allTestSelectors%20collect%3A%20%5B%3Aeach%20%7C%20self%20selector%3A%20each%5D'),
+source: "buildSuite\x0a\x09^self allTestSelectors collect: [:each | self selector: each]",
 messageSends: ["collect:", "allTestSelectors", "selector:"],
 referencedClasses: []
 }),
 smalltalk.TestCase.klass);
 
 smalltalk.addMethod(
-unescape('_lookupHierarchyRoot'),
+"_lookupHierarchyRoot",
 smalltalk.method({
-selector: unescape('lookupHierarchyRoot'),
+selector: "lookupHierarchyRoot",
 category: 'accessing',
 fn: function (){
 var self=this;
 return (smalltalk.TestCase || TestCase);
 return self;},
 args: [],
-source: unescape('lookupHierarchyRoot%0A%09%5ETestCase'),
+source: "lookupHierarchyRoot\x0a\x09^TestCase",
 messageSends: [],
 referencedClasses: ["TestCase"]
 }),
 smalltalk.TestCase.klass);
 
 smalltalk.addMethod(
-unescape('_selector_'),
+"_selector_",
 smalltalk.method({
-selector: unescape('selector%3A'),
+selector: "selector:",
 category: 'accessing',
 fn: function (aSelector){
 var self=this;
 return (function($rec){smalltalk.send($rec, "_setTestSelector_", [aSelector]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
 return self;},
 args: ["aSelector"],
-source: unescape('selector%3A%20aSelector%0A%09%5Eself%20new%0A%09%09setTestSelector%3A%20aSelector%3B%0A%09%09yourself'),
+source: "selector: aSelector\x0a\x09^self new\x0a\x09\x09setTestSelector: aSelector;\x0a\x09\x09yourself",
 messageSends: ["setTestSelector:", "yourself", "new"],
 referencedClasses: []
 }),
 smalltalk.TestCase.klass);
 
 smalltalk.addMethod(
-unescape('_shouldInheritSelectors'),
+"_shouldInheritSelectors",
 smalltalk.method({
-selector: unescape('shouldInheritSelectors'),
+selector: "shouldInheritSelectors",
 category: 'testing',
 fn: function (){
 var self=this;
 return smalltalk.send(self, "_~_eq", [smalltalk.send(self, "_lookupHierarchyRoot", [])]);
 return self;},
 args: [],
-source: unescape('shouldInheritSelectors%0A%09%5Eself%20%7E%3D%20self%20lookupHierarchyRoot'),
-messageSends: [unescape("%7E%3D"), "lookupHierarchyRoot"],
+source: "shouldInheritSelectors\x0a\x09^self ~= self lookupHierarchyRoot",
+messageSends: ["~=", "lookupHierarchyRoot"],
 referencedClasses: []
 }),
 smalltalk.TestCase.klass);
 
 smalltalk.addMethod(
-unescape('_testSelectors'),
+"_testSelectors",
 smalltalk.method({
-selector: unescape('testSelectors'),
+selector: "testSelectors",
 category: 'accessing',
 fn: function (){
 var self=this;
-return smalltalk.send(smalltalk.send(smalltalk.send(self, "_methodDictionary", []), "_keys", []), "_select_", [(function(each){return smalltalk.send(each, "_match_", [unescape("%5Etest")]);})]);
+return smalltalk.send(smalltalk.send(smalltalk.send(self, "_methodDictionary", []), "_keys", []), "_select_", [(function(each){return smalltalk.send(each, "_match_", ["^test"]);})]);
 return self;},
 args: [],
-source: unescape('testSelectors%0A%09%5Eself%20methodDictionary%20keys%20select%3A%20%5B%3Aeach%20%7C%20each%20match%3A%20%27%5Etest%27%5D'),
+source: "testSelectors\x0a\x09^self methodDictionary keys select: [:each | each match: '^test']",
 messageSends: ["select:", "keys", "methodDictionary", "match:"],
 referencedClasses: []
 }),
@@ -317,93 +317,93 @@ smalltalk.addClass('TestFailure', smalltalk.Error, [], 'SUnit');
 
 smalltalk.addClass('TestResult', smalltalk.Object, ['timestamp', 'runs', 'errors', 'failures', 'total'], 'SUnit');
 smalltalk.addMethod(
-unescape('_addError_'),
+"_addError_",
 smalltalk.method({
-selector: unescape('addError%3A'),
+selector: "addError:",
 category: 'accessing',
 fn: function (anError){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_errors", []), "_add_", [anError]);
 return self;},
 args: ["anError"],
-source: unescape('addError%3A%20anError%0A%09self%20errors%20add%3A%20anError'),
+source: "addError: anError\x0a\x09self errors add: anError",
 messageSends: ["add:", "errors"],
 referencedClasses: []
 }),
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_addFailure_'),
+"_addFailure_",
 smalltalk.method({
-selector: unescape('addFailure%3A'),
+selector: "addFailure:",
 category: 'accessing',
 fn: function (aFailure){
 var self=this;
 smalltalk.send(smalltalk.send(self, "_failures", []), "_add_", [aFailure]);
 return self;},
 args: ["aFailure"],
-source: unescape('addFailure%3A%20aFailure%0A%09self%20failures%20add%3A%20aFailure'),
+source: "addFailure: aFailure\x0a\x09self failures add: aFailure",
 messageSends: ["add:", "failures"],
 referencedClasses: []
 }),
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_errors'),
+"_errors",
 smalltalk.method({
-selector: unescape('errors'),
+selector: "errors",
 category: 'accessing',
 fn: function (){
 var self=this;
 return self['@errors'];
 return self;},
 args: [],
-source: unescape('errors%0A%09%5Eerrors'),
+source: "errors\x0a\x09^errors",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_failures'),
+"_failures",
 smalltalk.method({
-selector: unescape('failures'),
+selector: "failures",
 category: 'accessing',
 fn: function (){
 var self=this;
 return self['@failures'];
 return self;},
 args: [],
-source: unescape('failures%0A%09%5Efailures'),
+source: "failures\x0a\x09^failures",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_increaseRuns'),
+"_increaseRuns",
 smalltalk.method({
-selector: unescape('increaseRuns'),
+selector: "increaseRuns",
 category: 'accessing',
 fn: function (){
 var self=this;
 (self['@runs']=((($receiver = self['@runs']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));
 return self;},
 args: [],
-source: unescape('increaseRuns%0A%09runs%20%3A%3D%20runs%20+%201'),
-messageSends: [unescape("+")],
+source: "increaseRuns\x0a\x09runs := runs + 1",
+messageSends: ["+"],
 referencedClasses: []
 }),
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_initialize'),
+"_initialize",
 smalltalk.method({
-selector: unescape('initialize'),
+selector: "initialize",
 category: 'initialization',
 fn: function (){
 var self=this;
-smalltalk.send(self, "_initialize", [], smalltalk.Object);
+smalltalk.send(self, "_initialize", [], smalltalk.TestResult.superclass || nil);
 (self['@timestamp']=smalltalk.send((smalltalk.Date || Date), "_now", []));
 (self['@runs']=(0));
 (self['@errors']=smalltalk.send((smalltalk.Array || Array), "_new", []));
@@ -411,87 +411,87 @@ smalltalk.send(self, "_initialize", [], smalltalk.Object);
 (self['@total']=(0));
 return self;},
 args: [],
-source: unescape('initialize%0A%09super%20initialize.%0A%09timestamp%20%3A%3D%20Date%20now.%0A%09runs%20%3A%3D%200.%0A%09errors%20%3A%3D%20Array%20new.%0A%09failures%20%3A%3D%20Array%20new.%0A%09total%20%3A%3D%200'),
+source: "initialize\x0a\x09super initialize.\x0a\x09timestamp := Date now.\x0a\x09runs := 0.\x0a\x09errors := Array new.\x0a\x09failures := Array new.\x0a\x09total := 0",
 messageSends: ["initialize", "now", "new"],
 referencedClasses: ["Date", "Array"]
 }),
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_runs'),
+"_runs",
 smalltalk.method({
-selector: unescape('runs'),
+selector: "runs",
 category: 'accessing',
 fn: function (){
 var self=this;
 return self['@runs'];
 return self;},
 args: [],
-source: unescape('runs%0A%09%5Eruns'),
+source: "runs\x0a\x09^runs",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_status'),
+"_status",
 smalltalk.method({
-selector: unescape('status'),
+selector: "status",
 category: 'accessing',
 fn: function (){
 var self=this;
 return ((($receiver = smalltalk.send(smalltalk.send(self, "_errors", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(self, "_failures", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "success";})() : (function(){return "failure";})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "success";}), (function(){return "failure";})]));})() : (function(){return "error";})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(self, "_failures", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "success";})() : (function(){return "failure";})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "success";}), (function(){return "failure";})]));}), (function(){return "error";})]));
 return self;},
 args: [],
-source: unescape('status%0A%09%5Eself%20errors%20isEmpty%20%0A%09%09ifTrue%3A%20%5B%0A%09%09%09self%20failures%20isEmpty%20%0A%09%09%09%09ifTrue%3A%20%5B%27success%27%5D%0A%09%09%09%09ifFalse%3A%20%5B%27failure%27%5D%5D%0A%09%09ifFalse%3A%20%5B%27error%27%5D'),
+source: "status\x0a\x09^self errors isEmpty \x0a\x09\x09ifTrue: [\x0a\x09\x09\x09self failures isEmpty \x0a\x09\x09\x09\x09ifTrue: ['success']\x0a\x09\x09\x09\x09ifFalse: ['failure']]\x0a\x09\x09ifFalse: ['error']",
 messageSends: ["ifTrue:ifFalse:", "isEmpty", "errors", "failures"],
 referencedClasses: []
 }),
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_timestamp'),
+"_timestamp",
 smalltalk.method({
-selector: unescape('timestamp'),
+selector: "timestamp",
 category: 'accessing',
 fn: function (){
 var self=this;
 return self['@timestamp'];
 return self;},
 args: [],
-source: unescape('timestamp%0A%09%5Etimestamp'),
+source: "timestamp\x0a\x09^timestamp",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_total'),
+"_total",
 smalltalk.method({
-selector: unescape('total'),
+selector: "total",
 category: 'accessing',
 fn: function (){
 var self=this;
 return self['@total'];
 return self;},
 args: [],
-source: unescape('total%0A%09%5Etotal'),
+source: "total\x0a\x09^total",
 messageSends: [],
 referencedClasses: []
 }),
 smalltalk.TestResult);
 
 smalltalk.addMethod(
-unescape('_total_'),
+"_total_",
 smalltalk.method({
-selector: unescape('total%3A'),
+selector: "total:",
 category: 'accessing',
 fn: function (aNumber){
 var self=this;
 (self['@total']=aNumber);
 return self;},
 args: ["aNumber"],
-source: unescape('total%3A%20aNumber%0A%09total%20%3A%3D%20aNumber'),
+source: "total: aNumber\x0a\x09total := aNumber",
 messageSends: [],
 referencedClasses: []
 }),

+ 10 - 9
st/Compiler.st

@@ -338,7 +338,7 @@ import: aStream
         chunk isEmpty
        		ifTrue: [lastEmpty := true]
        		ifFalse: [
-        		result := Compiler new loadExpression: chunk.
+        		result := Compiler new evaluateExpression: chunk.
         		lastEmpty 
             			ifTrue: [
                                   	lastEmpty := false.
@@ -849,6 +849,15 @@ eval: aString
 	<return eval(aString)>
 !
 
+evaluateExpression: aString
+	"Unlike #eval: evaluate a Smalltalk expression and answer the returned object"
+	| result |
+	DoIt addCompiledMethod: (self eval: (self compileExpression: aString)).
+	result := DoIt new doIt.
+	DoIt removeCompiledMethod: (DoIt methodDictionary at: 'doIt').
+	^result
+!
+
 install: aString forClass: aBehavior category: anotherString
 	| compiled |
 	compiled := self eval: (self compile: aString forClass: aBehavior).
@@ -857,14 +866,6 @@ install: aString forClass: aBehavior category: anotherString
 	^compiled
 !
 
-loadExpression: aString
-	| result |
-	DoIt addCompiledMethod: (self eval: (self compileExpression: aString)).
-	result := DoIt new doIt.
-	DoIt removeCompiledMethod: (DoIt methodDictionary at: 'doIt').
-	^result
-!
-
 parse: aString
     ^Smalltalk current parse: aString
 !

+ 1 - 1
st/IDE.st

@@ -814,7 +814,7 @@ compileClassComment
 
 compileDefinition
     | newClass |
-    newClass := Compiler new loadExpression: sourceArea val.
+    newClass := Compiler new evaluateExpression: sourceArea val.
     self 
 	resetClassesList;
 	updateCategoriesList;

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor