Browse Source

Amber update

Nicolas Petton 12 years ago
parent
commit
fdbc87aecf

+ 1 - 1
amber/documentation.html

@@ -18,7 +18,7 @@
       <div id="header"> 
 	<img class="left" src="images/amber_small.png"/> 
 	<div class="left">
-	  <h1>Documentation</h1>
+	  <h1>Amber Smalltalk - documentation</h1>
 	  <h2>Version 0.9.1</h2>
 	</div>
 	<div class="clear"></div>

+ 0 - 5
amber/index.html

@@ -84,11 +84,6 @@
 	    <h2>Examples</h2> 
 	    <div class="content"> 
 	      <ul>
-		<li>
-		  <a href="examples/trysmalltalk/index.html">
-		    <img src="images/profstef.png" alt="Learn Smalltalk with ProfStef"/>
-		  </a>
-		</li>
 		<li>
 		  <a href="examples/presentation/index.html">
 		    <img src="images/presentation.png" alt="ESUG 2011 presentation"/>

+ 11 - 11
amber/js/Benchfib.deploy.js

@@ -8,7 +8,7 @@ selector: 'main',
 fn: function (){
 var self=this;
 var result=nil;
-result=smalltalk.send((0), "_tinyBenchmarks", []);
+(result=smalltalk.send((0), "_tinyBenchmarks", []));
 smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [smalltalk.send(unescape("0%20tinyBenchmarks%20%3D%3E%20"), "__comma", [result])]);
 return self;}
 }),
@@ -37,8 +37,8 @@ var flags=nil;
 var prime=nil;
 var k=nil;
 var count=nil;
-size=(8190);
-smalltalk.send((1), "_to_do_", [self, (function(iter){count=(0);flags=smalltalk.send((smalltalk.Array || Array), "_new", []);smalltalk.send(size, "_timesRepeat_", [(function(){return smalltalk.send(flags, "_add_", [true]);})]);return smalltalk.send((1), "_to_do_", [size, (function(i){return ((($receiver = smalltalk.send(flags, "_at_", [i])).klass === smalltalk.Boolean) ? ($receiver ? (function(){prime=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));k=((($receiver = i).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime]));(function(){while((function(){return ((($receiver = k).klass === smalltalk.Number) ? $receiver <=size : smalltalk.send($receiver, "__lt_eq", [size]));})()) {(function(){smalltalk.send(flags, "_at_put_", [k, false]);return k=((($receiver = k).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime]));})()}})();return count=((($receiver = count).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){prime=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));k=((($receiver = i).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime]));(function(){while((function(){return ((($receiver = k).klass === smalltalk.Number) ? $receiver <=size : smalltalk.send($receiver, "__lt_eq", [size]));})()) {(function(){smalltalk.send(flags, "_at_put_", [k, false]);return k=((($receiver = k).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime]));})()}})();return count=((($receiver = count).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]));})]);})]);
+(size=(8190));
+smalltalk.send((1), "_to_do_", [self, (function(iter){(count=(0));(flags=smalltalk.send((smalltalk.Array || Array), "_new", []));smalltalk.send(size, "_timesRepeat_", [(function(){return smalltalk.send(flags, "_add_", [true]);})]);return smalltalk.send((1), "_to_do_", [size, (function(i){return ((($receiver = smalltalk.send(flags, "_at_", [i])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(prime=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));(k=((($receiver = i).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime])));(function(){while((function(){return ((($receiver = k).klass === smalltalk.Number) ? $receiver <=size : smalltalk.send($receiver, "__lt_eq", [size]));})()) {(function(){smalltalk.send(flags, "_at_put_", [k, false]);return (k=((($receiver = k).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime])));})()}})();return (count=((($receiver = count).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(prime=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));(k=((($receiver = i).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime])));(function(){while((function(){return ((($receiver = k).klass === smalltalk.Number) ? $receiver <=size : smalltalk.send($receiver, "__lt_eq", [size]));})()) {(function(){smalltalk.send(flags, "_at_put_", [k, false]);return (k=((($receiver = k).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime])));})()}})();return (count=((($receiver = count).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})]));})]);})]);
 return count;
 return self;}
 }),
@@ -55,10 +55,10 @@ var t2=nil;
 var r=nil;
 var n1=nil;
 var n2=nil;
-n1=(1);
-(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)]));})()}})();
+(n1=(1));
+(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 self;}
 }),
@@ -121,10 +121,10 @@ var t2=nil;
 var r=nil;
 var n1=nil;
 var n2=nil;
-n1=(1);
-(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)]));})()}})();
+(n1=(1));
+(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 self;}
 }),

+ 11 - 11
amber/js/Benchfib.js

@@ -9,7 +9,7 @@ category: 'not yet classified',
 fn: function (){
 var self=this;
 var result=nil;
-result=smalltalk.send((0), "_tinyBenchmarks", []);
+(result=smalltalk.send((0), "_tinyBenchmarks", []));
 smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [smalltalk.send(unescape("0%20tinyBenchmarks%20%3D%3E%20"), "__comma", [result])]);
 return self;},
 args: [],
@@ -48,8 +48,8 @@ var flags=nil;
 var prime=nil;
 var k=nil;
 var count=nil;
-size=(8190);
-smalltalk.send((1), "_to_do_", [self, (function(iter){count=(0);flags=smalltalk.send((smalltalk.Array || Array), "_new", []);smalltalk.send(size, "_timesRepeat_", [(function(){return smalltalk.send(flags, "_add_", [true]);})]);return smalltalk.send((1), "_to_do_", [size, (function(i){return ((($receiver = smalltalk.send(flags, "_at_", [i])).klass === smalltalk.Boolean) ? ($receiver ? (function(){prime=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));k=((($receiver = i).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime]));(function(){while((function(){return ((($receiver = k).klass === smalltalk.Number) ? $receiver <=size : smalltalk.send($receiver, "__lt_eq", [size]));})()) {(function(){smalltalk.send(flags, "_at_put_", [k, false]);return k=((($receiver = k).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime]));})()}})();return count=((($receiver = count).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){prime=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));k=((($receiver = i).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime]));(function(){while((function(){return ((($receiver = k).klass === smalltalk.Number) ? $receiver <=size : smalltalk.send($receiver, "__lt_eq", [size]));})()) {(function(){smalltalk.send(flags, "_at_put_", [k, false]);return k=((($receiver = k).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime]));})()}})();return count=((($receiver = count).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]));})]);})]);
+(size=(8190));
+smalltalk.send((1), "_to_do_", [self, (function(iter){(count=(0));(flags=smalltalk.send((smalltalk.Array || Array), "_new", []));smalltalk.send(size, "_timesRepeat_", [(function(){return smalltalk.send(flags, "_add_", [true]);})]);return smalltalk.send((1), "_to_do_", [size, (function(i){return ((($receiver = smalltalk.send(flags, "_at_", [i])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(prime=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));(k=((($receiver = i).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime])));(function(){while((function(){return ((($receiver = k).klass === smalltalk.Number) ? $receiver <=size : smalltalk.send($receiver, "__lt_eq", [size]));})()) {(function(){smalltalk.send(flags, "_at_put_", [k, false]);return (k=((($receiver = k).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime])));})()}})();return (count=((($receiver = count).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(prime=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));(k=((($receiver = i).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime])));(function(){while((function(){return ((($receiver = k).klass === smalltalk.Number) ? $receiver <=size : smalltalk.send($receiver, "__lt_eq", [size]));})()) {(function(){smalltalk.send(flags, "_at_put_", [k, false]);return (k=((($receiver = k).klass === smalltalk.Number) ? $receiver +prime : smalltalk.send($receiver, "__plus", [prime])));})()}})();return (count=((($receiver = count).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})]));})]);})]);
 return count;
 return self;},
 args: [],
@@ -71,10 +71,10 @@ var t2=nil;
 var r=nil;
 var n1=nil;
 var n2=nil;
-n1=(1);
-(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)]));})()}})();
+(n1=(1));
+(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 self;},
 args: [],
@@ -152,10 +152,10 @@ var t2=nil;
 var r=nil;
 var n1=nil;
 var n2=nil;
-n1=(1);
-(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)]));})()}})();
+(n1=(1));
+(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 self;},
 args: [],

+ 8 - 8
amber/js/Canvas.deploy.js

@@ -6,7 +6,7 @@ smalltalk.method({
 selector: 'root:',
 fn: function (aTagBrush){
 var self=this;
-self['@root']=aTagBrush;
+(self['@root']=aTagBrush);
 return self;}
 }),
 smalltalk.HTMLCanvas);
@@ -40,7 +40,7 @@ selector: 'initialize',
 fn: function (){
 var self=this;
 smalltalk.send(self, "_initialize", [], smalltalk.Object);
-(($receiver = self['@root']) == nil || $receiver == undefined) ? (function(){return self['@root']=smalltalk.send((smalltalk.TagBrush || TagBrush), "_fromString_canvas_", ["div", self]);})() : $receiver;
+(($receiver = self['@root']) == nil || $receiver == undefined) ? (function(){return (self['@root']=smalltalk.send((smalltalk.TagBrush || TagBrush), "_fromString_canvas_", ["div", self]));})() : $receiver;
 return self;}
 }),
 smalltalk.HTMLCanvas);
@@ -51,7 +51,7 @@ smalltalk.method({
 selector: 'initializeFromJQuery:',
 fn: function (aJQuery){
 var self=this;
-self['@root']=smalltalk.send((smalltalk.TagBrush || TagBrush), "_fromJQuery_canvas_", [aJQuery, self]);
+(self['@root']=smalltalk.send((smalltalk.TagBrush || TagBrush), "_fromJQuery_canvas_", [aJQuery, self]));
 return self;}
 }),
 smalltalk.HTMLCanvas);
@@ -793,7 +793,7 @@ selector: 'appendBlock:',
 fn: function (aBlock){
 var self=this;
 var root=nil;
-root=smalltalk.send(self['@canvas'], "_root", []);
+(root=smalltalk.send(self['@canvas'], "_root", []));
 smalltalk.send(self['@canvas'], "_root_", [self]);
 smalltalk.send(aBlock, "_value_", [self['@canvas']]);
 smalltalk.send(self['@canvas'], "_root_", [root]);
@@ -1087,8 +1087,8 @@ smalltalk.method({
 selector: 'initializeFromString:canvas:',
 fn: function (aString, aCanvas){
 var self=this;
-self['@element']=smalltalk.send(self, "_createElementFor_", [aString]);
-self['@canvas']=aCanvas;
+(self['@element']=smalltalk.send(self, "_createElementFor_", [aString]));
+(self['@canvas']=aCanvas);
 return self;}
 }),
 smalltalk.TagBrush);
@@ -1099,8 +1099,8 @@ smalltalk.method({
 selector: 'initializeFromJQuery:canvas:',
 fn: function (aJQuery, aCanvas){
 var self=this;
-self['@element']=smalltalk.send(aJQuery, "_get_", [(0)]);
-self['@canvas']=aCanvas;
+(self['@element']=smalltalk.send(aJQuery, "_get_", [(0)]));
+(self['@canvas']=aCanvas);
 return self;}
 }),
 smalltalk.TagBrush);

+ 8 - 8
amber/js/Canvas.js

@@ -7,7 +7,7 @@ selector: unescape('root%3A'),
 category: 'accessing',
 fn: function (aTagBrush){
 var self=this;
-self['@root']=aTagBrush;
+(self['@root']=aTagBrush);
 return self;},
 args: ["aTagBrush"],
 source: unescape('root%3A%20aTagBrush%0A%20%20%20%20root%20%3A%3D%20aTagBrush'),
@@ -56,7 +56,7 @@ category: 'initialization',
 fn: function (){
 var self=this;
 smalltalk.send(self, "_initialize", [], smalltalk.Object);
-(($receiver = self['@root']) == nil || $receiver == undefined) ? (function(){return self['@root']=smalltalk.send((smalltalk.TagBrush || TagBrush), "_fromString_canvas_", ["div", self]);})() : $receiver;
+(($receiver = self['@root']) == nil || $receiver == undefined) ? (function(){return (self['@root']=smalltalk.send((smalltalk.TagBrush || TagBrush), "_fromString_canvas_", ["div", self]));})() : $receiver;
 return self;},
 args: [],
 source: unescape('initialize%0A%20%20%20%20super%20initialize.%0A%20%20%20%20root%20ifNil%3A%20%5Broot%20%3A%3D%20TagBrush%20fromString%3A%20%27div%27%20canvas%3A%20self%5D'),
@@ -72,7 +72,7 @@ selector: unescape('initializeFromJQuery%3A'),
 category: 'initialization',
 fn: function (aJQuery){
 var self=this;
-self['@root']=smalltalk.send((smalltalk.TagBrush || TagBrush), "_fromJQuery_canvas_", [aJQuery, self]);
+(self['@root']=smalltalk.send((smalltalk.TagBrush || TagBrush), "_fromJQuery_canvas_", [aJQuery, self]));
 return self;},
 args: ["aJQuery"],
 source: unescape('initializeFromJQuery%3A%20aJQuery%0A%20%20%20%20root%20%3A%3D%20TagBrush%20fromJQuery%3A%20aJQuery%20canvas%3A%20self'),
@@ -1149,7 +1149,7 @@ category: 'adding',
 fn: function (aBlock){
 var self=this;
 var root=nil;
-root=smalltalk.send(self['@canvas'], "_root", []);
+(root=smalltalk.send(self['@canvas'], "_root", []));
 smalltalk.send(self['@canvas'], "_root_", [self]);
 smalltalk.send(aBlock, "_value_", [self['@canvas']]);
 smalltalk.send(self['@canvas'], "_root_", [root]);
@@ -1573,8 +1573,8 @@ selector: unescape('initializeFromString%3Acanvas%3A'),
 category: 'initialization',
 fn: function (aString, aCanvas){
 var self=this;
-self['@element']=smalltalk.send(self, "_createElementFor_", [aString]);
-self['@canvas']=aCanvas;
+(self['@element']=smalltalk.send(self, "_createElementFor_", [aString]));
+(self['@canvas']=aCanvas);
 return self;},
 args: ["aString", "aCanvas"],
 source: unescape('initializeFromString%3A%20aString%20canvas%3A%20aCanvas%0A%20%20%20%20element%20%3A%3D%20self%20createElementFor%3A%20aString.%0A%20%20%20%20canvas%20%3A%3D%20aCanvas'),
@@ -1590,8 +1590,8 @@ selector: unescape('initializeFromJQuery%3Acanvas%3A'),
 category: 'initialization',
 fn: function (aJQuery, aCanvas){
 var self=this;
-self['@element']=smalltalk.send(aJQuery, "_get_", [(0)]);
-self['@canvas']=aCanvas;
+(self['@element']=smalltalk.send(aJQuery, "_get_", [(0)]));
+(self['@canvas']=aCanvas);
 return self;},
 args: ["aJQuery", "aCanvas"],
 source: unescape('initializeFromJQuery%3A%20aJQuery%20canvas%3A%20aCanvas%0A%20%20%20%20element%20%3A%3D%20aJQuery%20get%3A%200.%0A%20%20%20%20canvas%20%3A%3D%20aCanvas'),

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


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


File diff suppressed because it is too large
+ 28 - 18
amber/js/Documentation.deploy.js


File diff suppressed because it is too large
+ 43 - 28
amber/js/Documentation.js


+ 4 - 4
amber/js/Examples.deploy.js

@@ -6,7 +6,7 @@ smalltalk.method({
 selector: 'increase',
 fn: function (){
 var self=this;
-self['@count']=((($receiver = self['@count']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));
+(self['@count']=((($receiver = self['@count']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));
 smalltalk.send(self['@header'], "_contents_", [(function(html){return smalltalk.send(html, "_with_", [smalltalk.send(self['@count'], "_asString", [])]);})]);
 return self;}
 }),
@@ -18,7 +18,7 @@ smalltalk.method({
 selector: 'decrease',
 fn: function (){
 var self=this;
-self['@count']=((($receiver = self['@count']).klass === smalltalk.Number) ? $receiver -(1) : smalltalk.send($receiver, "__minus", [(1)]));
+(self['@count']=((($receiver = self['@count']).klass === smalltalk.Number) ? $receiver -(1) : smalltalk.send($receiver, "__minus", [(1)])));
 smalltalk.send(self['@header'], "_contents_", [(function(html){return smalltalk.send(html, "_with_", [smalltalk.send(self['@count'], "_asString", [])]);})]);
 return self;}
 }),
@@ -31,7 +31,7 @@ selector: 'initialize',
 fn: function (){
 var self=this;
 smalltalk.send(self, "_initialize", [], smalltalk.Widget);
-self['@count']=(0);
+(self['@count']=(0));
 return self;}
 }),
 smalltalk.Counter);
@@ -42,7 +42,7 @@ smalltalk.method({
 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", []));
+(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", []));
 return self;}

+ 4 - 4
amber/js/Examples.js

@@ -7,7 +7,7 @@ selector: unescape('increase'),
 category: 'actions',
 fn: function (){
 var self=this;
-self['@count']=((($receiver = self['@count']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));
+(self['@count']=((($receiver = self['@count']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));
 smalltalk.send(self['@header'], "_contents_", [(function(html){return smalltalk.send(html, "_with_", [smalltalk.send(self['@count'], "_asString", [])]);})]);
 return self;},
 args: [],
@@ -24,7 +24,7 @@ selector: unescape('decrease'),
 category: 'actions',
 fn: function (){
 var self=this;
-self['@count']=((($receiver = self['@count']).klass === smalltalk.Number) ? $receiver -(1) : smalltalk.send($receiver, "__minus", [(1)]));
+(self['@count']=((($receiver = self['@count']).klass === smalltalk.Number) ? $receiver -(1) : smalltalk.send($receiver, "__minus", [(1)])));
 smalltalk.send(self['@header'], "_contents_", [(function(html){return smalltalk.send(html, "_with_", [smalltalk.send(self['@count'], "_asString", [])]);})]);
 return self;},
 args: [],
@@ -42,7 +42,7 @@ category: 'initialization',
 fn: function (){
 var self=this;
 smalltalk.send(self, "_initialize", [], smalltalk.Widget);
-self['@count']=(0);
+(self['@count']=(0));
 return self;},
 args: [],
 source: unescape('initialize%0A%20%20%20%20super%20initialize.%0A%20%20%20%20count%20%3A%3D%200'),
@@ -58,7 +58,7 @@ selector: unescape('renderOn%3A'),
 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", []));
+(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", []));
 return self;},

+ 3 - 3
amber/js/IDE.deploy.js

@@ -1729,7 +1729,7 @@ smalltalk.method({
 selector: 'searchSelectorReferencesFor:',
 fn: function (aString){
 var self=this;
-smalltalk.send(smalltalk.send(self, "_classesAndMetaclasses", []), "_do_", [(function(each){smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_keysAndValuesDo_", [(function(key, value){return ((($receiver = smalltalk.send(key, "__eq", [self['@selector']])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_implementors", []), "_add_", [value]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_implementors", []), "_add_", [value]);})]));})]);return smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_keysAndValuesDo_", [(function(key, value){return ((($receiver = smalltalk.send(smalltalk.send(value, "_messageSends", []), "_includes_", [self['@selector']])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_senders", []), "_add_", [value]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_senders", []), "_add_", [value]);})]));})]);})]);
+smalltalk.send(smalltalk.send(self, "_classesAndMetaclasses", []), "_do_", [(function(each){return smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_keysAndValuesDo_", [(function(key, value){((($receiver = smalltalk.send(key, "__eq", [self['@selector']])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_implementors", []), "_add_", [value]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_implementors", []), "_add_", [value]);})]));return ((($receiver = smalltalk.send(smalltalk.send(value, "_messageSends", []), "_includes_", [self['@selector']])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_senders", []), "_add_", [value]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_senders", []), "_add_", [value]);})]));})]);})]);
 return self;}
 }),
 smalltalk.ReferencesBrowser);
@@ -3470,12 +3470,12 @@ selector: 'inspectOn:',
 fn: function (anInspector){
 var self=this;
 var variables=nil;
-variables=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
+(variables=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]);
 smalltalk.send(variables, "_at_put_", [unescape("%23keys"), smalltalk.send(self, "_keys", [])]);
 smalltalk.send(self, "_keysAndValuesDo_", [(function(key, value){return smalltalk.send(variables, "_at_put_", [key, value]);})]);
 (function($rec){smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);})(anInspector);
 return self;}
 }),
-smalltalk.Dictionary);
+smalltalk.HashedCollection);
 

+ 4 - 4
amber/js/IDE.js

@@ -2440,10 +2440,10 @@ selector: unescape('searchSelectorReferencesFor%3A'),
 category: 'actions',
 fn: function (aString){
 var self=this;
-smalltalk.send(smalltalk.send(self, "_classesAndMetaclasses", []), "_do_", [(function(each){smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_keysAndValuesDo_", [(function(key, value){return ((($receiver = smalltalk.send(key, "__eq", [self['@selector']])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_implementors", []), "_add_", [value]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_implementors", []), "_add_", [value]);})]));})]);return smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_keysAndValuesDo_", [(function(key, value){return ((($receiver = smalltalk.send(smalltalk.send(value, "_messageSends", []), "_includes_", [self['@selector']])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_senders", []), "_add_", [value]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_senders", []), "_add_", [value]);})]));})]);})]);
+smalltalk.send(smalltalk.send(self, "_classesAndMetaclasses", []), "_do_", [(function(each){return smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_keysAndValuesDo_", [(function(key, value){((($receiver = smalltalk.send(key, "__eq", [self['@selector']])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_implementors", []), "_add_", [value]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_implementors", []), "_add_", [value]);})]));return ((($receiver = smalltalk.send(smalltalk.send(value, "_messageSends", []), "_includes_", [self['@selector']])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_senders", []), "_add_", [value]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_senders", []), "_add_", [value]);})]));})]);})]);
 return self;},
 args: ["aString"],
-source: unescape('searchSelectorReferencesFor%3A%20aString%0A%09self%20classesAndMetaclasses%20do%3A%20%5B%3Aeach%20%7C%20%0A%09%09each%20methodDictionary%20keysAndValuesDo%3A%20%5B%3Akey%20%3Avalue%20%7C%20%0A%09%09%09key%20%3D%20selector%20ifTrue%3A%20%5Bself%20implementors%20add%3A%20value%5D%5D.%0A%09%09each%20methodDictionary%20keysAndValuesDo%3A%20%5B%3Akey%20%3Avalue%20%7C%20%0A%09%09%09%28value%20messageSends%20includes%3A%20selector%29%20ifTrue%3A%20%5B%0A%09%09%09%09self%20senders%20add%3A%20value%5D%5D%5D'),
+source: unescape('searchSelectorReferencesFor%3A%20aString%0A%09self%20classesAndMetaclasses%20do%3A%20%5B%3Aeach%20%7C%20%0A%09%09each%20methodDictionary%20keysAndValuesDo%3A%20%5B%3Akey%20%3Avalue%20%7C%20%0A%09%09%09key%20%3D%20selector%20ifTrue%3A%20%5Bself%20implementors%20add%3A%20value%5D.%0A%09%09%09%28value%20messageSends%20includes%3A%20selector%29%20ifTrue%3A%20%5B%0A%09%09%09%09self%20senders%20add%3A%20value%5D%5D%5D'),
 messageSends: ["do:", "classesAndMetaclasses", "keysAndValuesDo:", "methodDictionary", "ifTrue:", unescape("%3D"), "add:", "implementors", "includes:", "messageSends", "senders"],
 referencedClasses: []
 }),
@@ -4886,7 +4886,7 @@ category: '*IDE',
 fn: function (anInspector){
 var self=this;
 var variables=nil;
-variables=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
+(variables=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]);
 smalltalk.send(variables, "_at_put_", [unescape("%23keys"), smalltalk.send(self, "_keys", [])]);
 smalltalk.send(self, "_keysAndValuesDo_", [(function(key, value){return smalltalk.send(variables, "_at_put_", [key, value]);})]);
@@ -4897,5 +4897,5 @@ source: unescape('inspectOn%3A%20anInspector%0A%09%7C%20variables%20%7C%0A%09var
 messageSends: ["new", "at:put:", "keys", "keysAndValuesDo:", "setLabel:", "printString", "setVariables:"],
 referencedClasses: ["Dictionary"]
 }),
-smalltalk.Dictionary);
+smalltalk.HashedCollection);
 

+ 14 - 14
amber/js/Kernel-Announcements.deploy.js

@@ -1,5 +1,16 @@
 smalltalk.addPackage('Kernel-Announcements', {});
 smalltalk.addClass('Announcer', smalltalk.Object, ['registry', 'subscriptions'], 'Kernel-Announcements');
+smalltalk.addMethod(
+'_announce_',
+smalltalk.method({
+selector: 'announce:',
+fn: function (anAnnouncement){
+var self=this;
+smalltalk.send(self['@subscriptions'], "_do_", [(function(each){return smalltalk.send(each, "_deliver_", [anAnnouncement]);})]);
+return self;}
+}),
+smalltalk.Announcer);
+
 smalltalk.addMethod(
 '_initialize',
 smalltalk.method({
@@ -7,7 +18,7 @@ selector: 'initialize',
 fn: function (){
 var self=this;
 smalltalk.send(self, "_initialize", [], smalltalk.Object);
-self['@subscriptions']=smalltalk.send((smalltalk.OrderedCollection || OrderedCollection), "_new", []);
+(self['@subscriptions']=smalltalk.send((smalltalk.OrderedCollection || OrderedCollection), "_new", []));
 return self;}
 }),
 smalltalk.Announcer);
@@ -23,17 +34,6 @@ return self;}
 }),
 smalltalk.Announcer);
 
-smalltalk.addMethod(
-'_announce_',
-smalltalk.method({
-selector: 'announce:',
-fn: function (anAnnouncement){
-var self=this;
-smalltalk.send(self['@subscriptions'], "_do_", [(function(each){return smalltalk.send(each, "_deliver_", [anAnnouncement]);})]);
-return self;}
-}),
-smalltalk.Announcer);
-
 
 
 smalltalk.addClass('AnnouncementSubscription', smalltalk.Object, ['block', 'announcementClass'], 'Kernel-Announcements');
@@ -54,7 +54,7 @@ smalltalk.method({
 selector: 'announcementClass:',
 fn: function (aClass){
 var self=this;
-self['@announcementClass']=aClass;
+(self['@announcementClass']=aClass);
 return self;}
 }),
 smalltalk.AnnouncementSubscription);
@@ -76,7 +76,7 @@ smalltalk.method({
 selector: 'block:',
 fn: function (aBlock){
 var self=this;
-self['@block']=aBlock;
+(self['@block']=aBlock);
 return self;}
 }),
 smalltalk.AnnouncementSubscription);

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

@@ -1,5 +1,21 @@
 smalltalk.addPackage('Kernel-Announcements', {});
 smalltalk.addClass('Announcer', smalltalk.Object, ['registry', 'subscriptions'], 'Kernel-Announcements');
+smalltalk.addMethod(
+unescape('_announce_'),
+smalltalk.method({
+selector: unescape('announce%3A'),
+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'),
+messageSends: ["do:", "deliver:"],
+referencedClasses: []
+}),
+smalltalk.Announcer);
+
 smalltalk.addMethod(
 unescape('_initialize'),
 smalltalk.method({
@@ -8,7 +24,7 @@ category: 'initialization',
 fn: function (){
 var self=this;
 smalltalk.send(self, "_initialize", [], smalltalk.Object);
-self['@subscriptions']=smalltalk.send((smalltalk.OrderedCollection || OrderedCollection), "_new", []);
+(self['@subscriptions']=smalltalk.send((smalltalk.OrderedCollection || OrderedCollection), "_new", []));
 return self;},
 args: [],
 source: unescape('initialize%0A%09super%20initialize.%0A%09subscriptions%20%3A%3D%20OrderedCollection%20new'),
@@ -33,22 +49,6 @@ referencedClasses: ["AnnouncementSubscription"]
 }),
 smalltalk.Announcer);
 
-smalltalk.addMethod(
-unescape('_announce_'),
-smalltalk.method({
-selector: unescape('announce%3A'),
-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'),
-messageSends: ["do:", "deliver:"],
-referencedClasses: []
-}),
-smalltalk.Announcer);
-
 
 
 smalltalk.addClass('AnnouncementSubscription', smalltalk.Object, ['block', 'announcementClass'], 'Kernel-Announcements');
@@ -75,7 +75,7 @@ selector: unescape('announcementClass%3A'),
 category: 'accessing',
 fn: function (aClass){
 var self=this;
-self['@announcementClass']=aClass;
+(self['@announcementClass']=aClass);
 return self;},
 args: ["aClass"],
 source: unescape('announcementClass%3A%20aClass%0A%09announcementClass%20%3A%3D%20aClass'),
@@ -107,7 +107,7 @@ selector: unescape('block%3A'),
 category: 'accessing',
 fn: function (aBlock){
 var self=this;
-self['@block']=aBlock;
+(self['@block']=aBlock);
 return self;},
 args: ["aBlock"],
 source: unescape('block%3A%20aBlock%0A%09block%20%3A%3D%20aBlock'),

+ 2 - 2
amber/js/Kernel-Classes.deploy.js

@@ -97,7 +97,7 @@ smalltalk.method({
 selector: 'methodDictionary',
 fn: function (){
 var self=this;
-var dict = smalltalk.Dictionary._new();
+var dict = smalltalk.HashedCollection._new();
 	var methods = self.fn.prototype.methods;
 	for(var i in methods) {
 		if(methods[i].selector) {
@@ -220,7 +220,7 @@ selector: 'protocolsDo:',
 fn: function (aBlock){
 var self=this;
 var methodsByCategory=nil;
-methodsByCategory=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
+(methodsByCategory=smalltalk.send((smalltalk.HashedCollection || HashedCollection), "_new", []));
 smalltalk.send(smalltalk.send(smalltalk.send(self, "_methodDictionary", []), "_values", []), "_do_", [(function(m){return smalltalk.send(smalltalk.send(methodsByCategory, "_at_ifAbsentPut_", [smalltalk.send(m, "_category", []), (function(){return smalltalk.send((smalltalk.Array || Array), "_new", []);})]), "_add_", [m]);})]);
 smalltalk.send(smalltalk.send(self, "_protocols", []), "_do_", [(function(category){return smalltalk.send(aBlock, "_value_value_", [category, smalltalk.send(methodsByCategory, "_at_", [category])]);})]);
 return self;}

+ 5 - 5
amber/js/Kernel-Classes.js

@@ -138,7 +138,7 @@ selector: unescape('methodDictionary'),
 category: 'accessing',
 fn: function (){
 var self=this;
-var dict = smalltalk.Dictionary._new();
+var dict = smalltalk.HashedCollection._new();
 	var methods = self.fn.prototype.methods;
 	for(var i in methods) {
 		if(methods[i].selector) {
@@ -148,7 +148,7 @@ var dict = smalltalk.Dictionary._new();
 	return dict;
 return self;},
 args: [],
-source: unescape('methodDictionary%0A%09%3Cvar%20dict%20%3D%20smalltalk.Dictionary._new%28%29%3B%0A%09var%20methods%20%3D%20self.fn.prototype.methods%3B%0A%09for%28var%20i%20in%20methods%29%20%7B%0A%09%09if%28methods%5Bi%5D.selector%29%20%7B%0A%09%09%09dict._at_put_%28methods%5Bi%5D.selector%2C%20methods%5Bi%5D%29%3B%0A%09%09%7D%0A%09%7D%3B%0A%09return%20dict%3E'),
+source: unescape('methodDictionary%0A%09%3Cvar%20dict%20%3D%20smalltalk.HashedCollection._new%28%29%3B%0A%09var%20methods%20%3D%20self.fn.prototype.methods%3B%0A%09for%28var%20i%20in%20methods%29%20%7B%0A%09%09if%28methods%5Bi%5D.selector%29%20%7B%0A%09%09%09dict._at_put_%28methods%5Bi%5D.selector%2C%20methods%5Bi%5D%29%3B%0A%09%09%7D%0A%09%7D%3B%0A%09return%20dict%3E'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -311,14 +311,14 @@ category: 'accessing',
 fn: function (aBlock){
 var self=this;
 var methodsByCategory=nil;
-methodsByCategory=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
+(methodsByCategory=smalltalk.send((smalltalk.HashedCollection || HashedCollection), "_new", []));
 smalltalk.send(smalltalk.send(smalltalk.send(self, "_methodDictionary", []), "_values", []), "_do_", [(function(m){return smalltalk.send(smalltalk.send(methodsByCategory, "_at_ifAbsentPut_", [smalltalk.send(m, "_category", []), (function(){return smalltalk.send((smalltalk.Array || Array), "_new", []);})]), "_add_", [m]);})]);
 smalltalk.send(smalltalk.send(self, "_protocols", []), "_do_", [(function(category){return smalltalk.send(aBlock, "_value_value_", [category, smalltalk.send(methodsByCategory, "_at_", [category])]);})]);
 return self;},
 args: ["aBlock"],
-source: unescape('protocolsDo%3A%20aBlock%0A%09%22Execute%20aBlock%20for%20each%20method%20category%20with%0A%09its%20collection%20of%20methods%20in%20the%20sort%20order%20of%20category%20name.%22%0A%0A%09%7C%20methodsByCategory%20%7C%0A%09methodsByCategory%20%3A%3D%20Dictionary%20new.%0A%09self%20methodDictionary%20values%20do%3A%20%5B%3Am%20%7C%0A%09%09%28methodsByCategory%20at%3A%20m%20category%20ifAbsentPut%3A%20%5BArray%20new%5D%29%0A%20%09%09%09add%3A%20m%5D.%20%0A%09self%20protocols%20do%3A%20%5B%3Acategory%20%7C%0A%09%09aBlock%20value%3A%20category%20value%3A%20%28methodsByCategory%20at%3A%20category%29%5D'),
+source: unescape('protocolsDo%3A%20aBlock%0A%09%22Execute%20aBlock%20for%20each%20method%20category%20with%0A%09its%20collection%20of%20methods%20in%20the%20sort%20order%20of%20category%20name.%22%0A%0A%09%7C%20methodsByCategory%20%7C%0A%09methodsByCategory%20%3A%3D%20HashedCollection%20new.%0A%09self%20methodDictionary%20values%20do%3A%20%5B%3Am%20%7C%0A%09%09%28methodsByCategory%20at%3A%20m%20category%20ifAbsentPut%3A%20%5BArray%20new%5D%29%0A%20%09%09%09add%3A%20m%5D.%20%0A%09self%20protocols%20do%3A%20%5B%3Acategory%20%7C%0A%09%09aBlock%20value%3A%20category%20value%3A%20%28methodsByCategory%20at%3A%20category%29%5D'),
 messageSends: ["new", "do:", "values", "methodDictionary", "add:", "at:ifAbsentPut:", "category", "protocols", "value:value:", "at:"],
-referencedClasses: ["Dictionary", "Array"]
+referencedClasses: ["HashedCollection", "Array"]
 }),
 smalltalk.Behavior);
 

File diff suppressed because it is too large
+ 22 - 28
amber/js/Kernel-Collections.deploy.js


File diff suppressed because it is too large
+ 22 - 28
amber/js/Kernel-Collections.js


+ 5 - 5
amber/js/Kernel-Exceptions.deploy.js

@@ -17,7 +17,7 @@ smalltalk.method({
 selector: 'messageText:',
 fn: function (aString){
 var self=this;
-self['@messageText']=aString;
+(self['@messageText']=aString);
 return self;}
 }),
 smalltalk.Error);
@@ -97,7 +97,7 @@ smalltalk.method({
 selector: 'message:',
 fn: function (aMessage){
 var self=this;
-self['@message']=aMessage;
+(self['@message']=aMessage);
 return self;}
 }),
 smalltalk.MessageNotUnderstood);
@@ -119,7 +119,7 @@ smalltalk.method({
 selector: 'receiver:',
 fn: function (anObject){
 var self=this;
-self['@receiver']=anObject;
+(self['@receiver']=anObject);
 return self;}
 }),
 smalltalk.MessageNotUnderstood);
@@ -203,7 +203,7 @@ smalltalk.method({
 selector: 'current',
 fn: function (){
 var self=this;
-return (($receiver = self['@current']) == nil || $receiver == undefined) ? (function(){return self['@current']=smalltalk.send(self, "_new", []);})() : $receiver;
+return (($receiver = self['@current']) == nil || $receiver == undefined) ? (function(){return (self['@current']=smalltalk.send(self, "_new", []));})() : $receiver;
 return self;}
 }),
 smalltalk.ErrorHandler.klass);
@@ -236,7 +236,7 @@ smalltalk.method({
 selector: 'setCurrent:',
 fn: function (anHandler){
 var self=this;
-self['@current']=anHandler;
+(self['@current']=anHandler);
 return self;}
 }),
 smalltalk.ErrorHandler.klass);

+ 26 - 26
amber/js/Kernel-Exceptions.js

@@ -10,7 +10,7 @@ var self=this;
 return self['@messageText'];
 return self;},
 args: [],
-source: unescape('messageText%0A%09%5EmessageText'),
+source: unescape('messageText%0D%0A%09%5EmessageText'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -23,10 +23,10 @@ selector: unescape('messageText%3A'),
 category: 'accessing',
 fn: function (aString){
 var self=this;
-self['@messageText']=aString;
+(self['@messageText']=aString);
 return self;},
 args: ["aString"],
-source: unescape('messageText%3A%20aString%0A%09messageText%20%3A%3D%20aString'),
+source: unescape('messageText%3A%20aString%0D%0A%09messageText%20%3A%3D%20aString'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -42,7 +42,7 @@ var self=this;
 self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self);
 return self;},
 args: [],
-source: unescape('signal%0A%09%3Cself.context%20%3D%20smalltalk.getThisContext%28%29%3B%20self.smalltalkError%20%3D%20true%3B%20throw%28self%29%3E'),
+source: unescape('signal%0D%0A%09%3Cself.context%20%3D%20smalltalk.getThisContext%28%29%3B%20self.smalltalkError%20%3D%20true%3B%20throw%28self%29%3E'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -58,7 +58,7 @@ var self=this;
 return self.context;
 return self;},
 args: [],
-source: unescape('context%0A%09%3Creturn%20self.context%3E'),
+source: unescape('context%0D%0A%09%3Creturn%20self.context%3E'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -74,7 +74,7 @@ var self=this;
 return self.stack;
 return self;},
 args: [],
-source: unescape('jsStack%0A%09%3Creturn%20self.stack%3E'),
+source: unescape('jsStack%0D%0A%09%3Creturn%20self.stack%3E'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -90,7 +90,7 @@ var self=this;
 return self.smalltalkError === true;
 return self;},
 args: [],
-source: unescape('isSmalltalkError%0A%09%3Creturn%20self.smalltalkError%20%3D%3D%3D%20true%3E'),
+source: unescape('isSmalltalkError%0D%0A%09%3Creturn%20self.smalltalkError%20%3D%3D%3D%20true%3E'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -107,7 +107,7 @@ var self=this;
 return (function($rec){smalltalk.send($rec, "_messageText_", [aString]);return smalltalk.send($rec, "_signal", []);})(smalltalk.send(self, "_new", []));
 return self;},
 args: ["aString"],
-source: unescape('signal%3A%20aString%0A%09%20%20%20%20%5Eself%20new%0A%09%09messageText%3A%20aString%3B%0A%09%09signal'),
+source: unescape('signal%3A%20aString%0D%0A%09%20%20%20%20%5Eself%20new%0D%0A%09%09messageText%3A%20aString%3B%0D%0A%09%09signal'),
 messageSends: ["messageText:", "signal", "new"],
 referencedClasses: []
 }),
@@ -125,7 +125,7 @@ var self=this;
 return self['@message'];
 return self;},
 args: [],
-source: unescape('message%0A%09%5Emessage'),
+source: unescape('message%0D%0A%09%5Emessage'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -138,10 +138,10 @@ selector: unescape('message%3A'),
 category: 'accessing',
 fn: function (aMessage){
 var self=this;
-self['@message']=aMessage;
+(self['@message']=aMessage);
 return self;},
 args: ["aMessage"],
-source: unescape('message%3A%20aMessage%0A%09message%20%3A%3D%20aMessage'),
+source: unescape('message%3A%20aMessage%0D%0A%09message%20%3A%3D%20aMessage'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -157,7 +157,7 @@ var self=this;
 return self['@receiver'];
 return self;},
 args: [],
-source: unescape('receiver%0A%09%5Ereceiver'),
+source: unescape('receiver%0D%0A%09%5Ereceiver'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -170,10 +170,10 @@ selector: unescape('receiver%3A'),
 category: 'accessing',
 fn: function (anObject){
 var self=this;
-self['@receiver']=anObject;
+(self['@receiver']=anObject);
 return self;},
 args: ["anObject"],
-source: unescape('receiver%3A%20anObject%0A%09receiver%20%3A%3D%20anObject'),
+source: unescape('receiver%3A%20anObject%0D%0A%09receiver%20%3A%3D%20anObject'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -189,7 +189,7 @@ 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 self;},
 args: [],
-source: unescape('messageText%0A%09%5Eself%20receiver%20asString%2C%20%27%20does%20not%20understand%20%23%27%2C%20self%20message%20selector'),
+source: unescape('messageText%0D%0A%09%5Eself%20receiver%20asString%2C%20%27%20does%20not%20understand%20%23%27%2C%20self%20message%20selector'),
 messageSends: [unescape("%2C"), "asString", "receiver", "selector", "message"],
 referencedClasses: []
 }),
@@ -209,7 +209,7 @@ var self=this;
 smalltalk.send(self, "_logError_", [anError]);
 return self;},
 args: ["anError"],
-source: unescape('handleError%3A%20anError%0A%09anError%20context%20ifNotNil%3A%20%5Bself%20logErrorContext%3A%20anError%20context%5D.%0A%09self%20logError%3A%20anError'),
+source: unescape('handleError%3A%20anError%0D%0A%09anError%20context%20ifNotNil%3A%20%5Bself%20logErrorContext%3A%20anError%20context%5D.%0D%0A%09self%20logError%3A%20anError'),
 messageSends: ["ifNotNil:", "context", "logErrorContext:", "logError:"],
 referencedClasses: []
 }),
@@ -226,7 +226,7 @@ var self=this;
 smalltalk.send(self, "_log_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aContext, "_receiver", []), "_asString", []), "__comma", [unescape("%3E%3E")]), "__comma", [smalltalk.send(aContext, "_selector", [])])]);
 return self;},
 args: ["aContext"],
-source: unescape('logContext%3A%20aContext%0A%09aContext%20home%20ifNotNil%3A%20%5B%0A%09%09self%20logContext%3A%20aContext%20home%5D.%0A%09self%20log%3A%20aContext%20receiver%20asString%2C%20%27%3E%3E%27%2C%20aContext%20selector'),
+source: unescape('logContext%3A%20aContext%0D%0A%09aContext%20home%20ifNotNil%3A%20%5B%0D%0A%09%09self%20logContext%3A%20aContext%20home%5D.%0D%0A%09self%20log%3A%20aContext%20receiver%20asString%2C%20%27%3E%3E%27%2C%20aContext%20selector'),
 messageSends: ["ifNotNil:", "home", "logContext:", "log:", unescape("%2C"), "asString", "receiver", "selector"],
 referencedClasses: []
 }),
@@ -242,7 +242,7 @@ 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;},
 args: ["aContext"],
-source: unescape('logErrorContext%3A%20aContext%0A%09aContext%20ifNotNil%3A%20%5B%0A%09%09aContext%20home%20ifNotNil%3A%20%5B%0A%09%09%09self%20logContext%3A%20aContext%20home%5D%5D'),
+source: unescape('logErrorContext%3A%20aContext%0D%0A%09aContext%20ifNotNil%3A%20%5B%0D%0A%09%09aContext%20home%20ifNotNil%3A%20%5B%0D%0A%09%09%09self%20logContext%3A%20aContext%20home%5D%5D'),
 messageSends: ["ifNotNil:", "home", "logContext:"],
 referencedClasses: []
 }),
@@ -258,7 +258,7 @@ var self=this;
 smalltalk.send(self, "_log_", [smalltalk.send(anError, "_messageText", [])]);
 return self;},
 args: ["anError"],
-source: unescape('logError%3A%20anError%0A%09self%20log%3A%20anError%20messageText'),
+source: unescape('logError%3A%20anError%0D%0A%09self%20log%3A%20anError%20messageText'),
 messageSends: ["log:", "messageText"],
 referencedClasses: []
 }),
@@ -274,7 +274,7 @@ var self=this;
 smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [aString]);
 return self;},
 args: ["aString"],
-source: unescape('log%3A%20aString%0A%09console%20log%3A%20aString'),
+source: unescape('log%3A%20aString%0D%0A%09console%20log%3A%20aString'),
 messageSends: ["log:"],
 referencedClasses: []
 }),
@@ -289,10 +289,10 @@ selector: unescape('current'),
 category: 'accessing',
 fn: function (){
 var self=this;
-return (($receiver = self['@current']) == nil || $receiver == undefined) ? (function(){return self['@current']=smalltalk.send(self, "_new", []);})() : $receiver;
+return (($receiver = self['@current']) == nil || $receiver == undefined) ? (function(){return (self['@current']=smalltalk.send(self, "_new", []));})() : $receiver;
 return self;},
 args: [],
-source: unescape('current%0A%09%5Ecurrent%20ifNil%3A%20%5Bcurrent%20%3A%3D%20self%20new%5D'),
+source: unescape('current%0D%0A%09%5Ecurrent%20ifNil%3A%20%5Bcurrent%20%3A%3D%20self%20new%5D'),
 messageSends: ["ifNil:", "new"],
 referencedClasses: []
 }),
@@ -308,7 +308,7 @@ var self=this;
 smalltalk.send(self, "_register", []);
 return self;},
 args: [],
-source: unescape('initialize%0A%09self%20register'),
+source: unescape('initialize%0D%0A%09self%20register'),
 messageSends: ["register"],
 referencedClasses: []
 }),
@@ -324,7 +324,7 @@ var self=this;
 smalltalk.send((smalltalk.ErrorHandler || ErrorHandler), "_setCurrent_", [smalltalk.send(self, "_new", [])]);
 return self;},
 args: [],
-source: unescape('register%0A%09ErrorHandler%20setCurrent%3A%20self%20new'),
+source: unescape('register%0D%0A%09ErrorHandler%20setCurrent%3A%20self%20new'),
 messageSends: ["setCurrent:", "new"],
 referencedClasses: ["ErrorHandler"]
 }),
@@ -337,10 +337,10 @@ selector: unescape('setCurrent%3A'),
 category: 'accessing',
 fn: function (anHandler){
 var self=this;
-self['@current']=anHandler;
+(self['@current']=anHandler);
 return self;},
 args: ["anHandler"],
-source: unescape('setCurrent%3A%20anHandler%0A%09current%20%3A%3D%20anHandler'),
+source: unescape('setCurrent%3A%20anHandler%0D%0A%09current%20%3A%3D%20anHandler'),
 messageSends: [],
 referencedClasses: []
 }),

+ 4 - 4
amber/js/Kernel-Methods.deploy.js

@@ -329,8 +329,8 @@ 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", []);})]);
+(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);
@@ -457,7 +457,7 @@ smalltalk.method({
 selector: 'selector:',
 fn: function (aString){
 var self=this;
-self['@selector']=aString;
+(self['@selector']=aString);
 return self;}
 }),
 smalltalk.Message);
@@ -468,7 +468,7 @@ smalltalk.method({
 selector: 'arguments:',
 fn: function (anArray){
 var self=this;
-self['@arguments']=anArray;
+(self['@arguments']=anArray);
 return self;}
 }),
 smalltalk.Message);

+ 4 - 4
amber/js/Kernel-Methods.js

@@ -476,8 +476,8 @@ 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", []);})]);
+(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'),
@@ -659,7 +659,7 @@ selector: unescape('selector%3A'),
 category: 'accessing',
 fn: function (aString){
 var self=this;
-self['@selector']=aString;
+(self['@selector']=aString);
 return self;},
 args: ["aString"],
 source: unescape('selector%3A%20aString%0A%09selector%20%3A%3D%20aString'),
@@ -675,7 +675,7 @@ selector: unescape('arguments%3A'),
 category: 'accessing',
 fn: function (anArray){
 var self=this;
-self['@arguments']=anArray;
+(self['@arguments']=anArray);
 return self;},
 args: ["anArray"],
 source: unescape('arguments%3A%20anArray%0A%09arguments%20%3A%3D%20anArray'),

File diff suppressed because it is too large
+ 33 - 33
amber/js/Kernel-Objects.deploy.js


File diff suppressed because it is too large
+ 33 - 33
amber/js/Kernel-Objects.js


+ 52 - 52
amber/js/Kernel-Tests.deploy.js

@@ -131,14 +131,14 @@ var self=this;
 var d1=nil;
 var d2=nil;
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []), "__eq", [smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])])]);
-d1=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
-d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
+(d1=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
+(d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
 smalltalk.send(self, "_assert_", [smalltalk.send(d1, "__eq", [d2])]);
-d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (3)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
+(d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (3)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
 smalltalk.send(self, "_deny_", [smalltalk.send(d1, "__eq", [d2])]);
-d2=(function($rec){smalltalk.send($rec, "_at_put_", [(2), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
+(d2=(function($rec){smalltalk.send($rec, "_at_put_", [(2), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
 smalltalk.send(self, "_deny_", [smalltalk.send(d1, "__eq", [d2])]);
-d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);smalltalk.send($rec, "_at_put_", [(3), (4)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
+(d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);smalltalk.send($rec, "_at_put_", [(3), (4)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
 smalltalk.send(self, "_deny_", [smalltalk.send(d1, "__eq", [d2])]);
 return self;}
 }),
@@ -150,7 +150,7 @@ smalltalk.method({
 selector: 'testDynamicDictionaries',
 fn: function (){
 var self=this;
-smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.Dictionary._fromPairs_([smalltalk.send((1), "__minus_gt", ["hello"]),smalltalk.send((2), "__minus_gt", ["world"])]), "__eq", [smalltalk.send((smalltalk.Dictionary || Dictionary), "_with_with_", [smalltalk.send((1), "__minus_gt", ["hello"]), smalltalk.send((2), "__minus_gt", ["world"])])])]);
+smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.HashedCollection._fromPairs_([smalltalk.send("hello", "__minus_gt", [(1)])]), "_asDictionary", []), "__eq", [smalltalk.send((smalltalk.Dictionary || Dictionary), "_with_", [smalltalk.send("hello", "__minus_gt", [(1)])])])]);
 return self;}
 }),
 smalltalk.DictionaryTest);
@@ -162,7 +162,7 @@ selector: 'testAccessing',
 fn: function (){
 var self=this;
 var d=nil;
-d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
+(d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 smalltalk.send(d, "_at_put_", ["hello", "world"]);
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_at_", ["hello"]), "__eq", ["world"])]);
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_at_ifAbsent_", ["hello", (function(){return nil;})]), "__eq", ["world"])]);
@@ -182,7 +182,7 @@ selector: 'testSize',
 fn: function (){
 var self=this;
 var d=nil;
-d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
+(d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_size", []), "__eq", [(0)])]);
 smalltalk.send(d, "_at_put_", [(1), (2)]);
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_size", []), "__eq", [(1)])]);
@@ -199,7 +199,7 @@ selector: 'testValues',
 fn: function (){
 var self=this;
 var d=nil;
-d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
+(d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 smalltalk.send(d, "_at_put_", [(1), (2)]);
 smalltalk.send(d, "_at_put_", [(2), (3)]);
 smalltalk.send(d, "_at_put_", [(3), (4)]);
@@ -215,7 +215,7 @@ selector: 'testKeys',
 fn: function (){
 var self=this;
 var d=nil;
-d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
+(d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 smalltalk.send(d, "_at_put_", [(1), (2)]);
 smalltalk.send(d, "_at_put_", [(2), (3)]);
 smalltalk.send(d, "_at_put_", [(3), (4)]);
@@ -483,10 +483,10 @@ selector: 'testTimesRepeat',
 fn: function (){
 var self=this;
 var i=nil;
-i=(0);
-smalltalk.send((0), "_timesRepeat_", [(function(){return i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]);
+(i=(0));
+smalltalk.send((0), "_timesRepeat_", [(function(){return (i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})]);
 smalltalk.send(self, "_assert_equals_", [i, (0)]);
-smalltalk.send((5), "_timesRepeat_", [(function(){return i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]);
+smalltalk.send((5), "_timesRepeat_", [(function(){return (i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})]);
 smalltalk.send(self, "_assert_equals_", [i, (5)]);
 return self;}
 }),
@@ -518,6 +518,17 @@ smalltalk.NumberTest);
 
 
 smalltalk.addClass('JSObjectProxyTest', smalltalk.TestCase, [], 'Kernel-Tests');
+smalltalk.addMethod(
+'_jsObject',
+smalltalk.method({
+selector: 'jsObject',
+fn: function (){
+var self=this;
+return jsObject = {a: 1, b: function() {return 2;}, c: function(object) {return object;}};
+return self;}
+}),
+smalltalk.JSObjectProxyTest);
+
 smalltalk.addMethod(
 '_testMethodWithArguments',
 smalltalk.method({
@@ -540,7 +551,7 @@ selector: 'testYourself',
 fn: function (){
 var self=this;
 var body=nil;
-body=(function($rec){smalltalk.send($rec, "_addClass_", ["amber"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send("body", "_asJQuery", []));
+(body=(function($rec){smalltalk.send($rec, "_addClass_", ["amber"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send("body", "_asJQuery", [])));
 smalltalk.send(self, "_assert_", [smalltalk.send(body, "_hasClass_", ["amber"])]);
 smalltalk.send(body, "_removeClass_", ["amber"]);
 smalltalk.send(self, "_deny_", [smalltalk.send(body, "_hasClass_", ["amber"])]);
@@ -562,17 +573,6 @@ return self;}
 }),
 smalltalk.JSObjectProxyTest);
 
-smalltalk.addMethod(
-'_jsObject',
-smalltalk.method({
-selector: 'jsObject',
-fn: function (){
-var self=this;
-return jsObject = {a: 1, b: function() {return 2;}, c: function(object) {return object;}};
-return self;}
-}),
-smalltalk.JSObjectProxyTest);
-
 smalltalk.addMethod(
 '_testDNU',
 smalltalk.method({
@@ -617,11 +617,11 @@ smalltalk.method({
 selector: 'setUp',
 fn: function (){
 var self=this;
-self['@backUpCommitPathJs']=smalltalk.send((smalltalk.Package || Package), "_defaultCommitPathJs", []);
-self['@backUpCommitPathSt']=smalltalk.send((smalltalk.Package || Package), "_defaultCommitPathSt", []);
+(self['@backUpCommitPathJs']=smalltalk.send((smalltalk.Package || Package), "_defaultCommitPathJs", []));
+(self['@backUpCommitPathSt']=smalltalk.send((smalltalk.Package || Package), "_defaultCommitPathSt", []));
 smalltalk.send((smalltalk.Package || Package), "_resetCommitPaths", []);
-self['@zorkPackage']=smalltalk.send(smalltalk.send((smalltalk.Package || Package), "_new", []), "_name_", ["Zork"]);
-self['@grulPackage']=(function($rec){smalltalk.send($rec, "_name_", ["Grul"]);smalltalk.send($rec, "_commitPathJs_", [unescape("server/grul/js")]);smalltalk.send($rec, "_commitPathSt_", [unescape("grul/st")]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Package || Package), "_new", []));
+(self['@zorkPackage']=smalltalk.send(smalltalk.send((smalltalk.Package || Package), "_new", []), "_name_", ["Zork"]));
+(self['@grulPackage']=(function($rec){smalltalk.send($rec, "_name_", ["Grul"]);smalltalk.send($rec, "_commitPathJs_", [unescape("server/grul/js")]);smalltalk.send($rec, "_commitPathSt_", [unescape("grul/st")]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Package || Package), "_new", [])));
 return self;}
 }),
 smalltalk.PackageTest);
@@ -822,11 +822,11 @@ selector: 'testWhileTrue',
 fn: function (){
 var self=this;
 var i=nil;
-i=(0);
-(function(){while((function(){return ((($receiver = i).klass === smalltalk.Number) ? $receiver <(5) : smalltalk.send($receiver, "__lt", [(5)]));})()) {(function(){return i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})()}})();
+(i=(0));
+(function(){while((function(){return ((($receiver = i).klass === smalltalk.Number) ? $receiver <(5) : smalltalk.send($receiver, "__lt", [(5)]));})()) {(function(){return (i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
 smalltalk.send(self, "_assert_equals_", [i, (5)]);
-i=(0);
-(function(){while((function(){i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));return ((($receiver = i).klass === smalltalk.Number) ? $receiver <(5) : smalltalk.send($receiver, "__lt", [(5)]));})()) {}})();
+(i=(0));
+(function(){while((function(){(i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));return ((($receiver = i).klass === smalltalk.Number) ? $receiver <(5) : smalltalk.send($receiver, "__lt", [(5)]));})()) {}})();
 smalltalk.send(self, "_assert_equals_", [i, (5)]);
 return self;}
 }),
@@ -839,11 +839,11 @@ selector: 'testWhileFalse',
 fn: function (){
 var self=this;
 var i=nil;
-i=(0);
-(function(){while(!(function(){return ((($receiver = i).klass === smalltalk.Number) ? $receiver >(5) : smalltalk.send($receiver, "__gt", [(5)]));})()) {(function(){return i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})()}})();
+(i=(0));
+(function(){while(!(function(){return ((($receiver = i).klass === smalltalk.Number) ? $receiver >(5) : smalltalk.send($receiver, "__gt", [(5)]));})()) {(function(){return (i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
 smalltalk.send(self, "_assert_equals_", [i, (6)]);
-i=(0);
-(function(){while(!(function(){i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));return ((($receiver = i).klass === smalltalk.Number) ? $receiver >(5) : smalltalk.send($receiver, "__gt", [(5)]));})()) {}})();
+(i=(0));
+(function(){while(!(function(){(i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));return ((($receiver = i).klass === smalltalk.Number) ? $receiver >(5) : smalltalk.send($receiver, "__gt", [(5)]));})()) {}})();
 smalltalk.send(self, "_assert_equals_", [i, (6)]);
 return self;}
 }),
@@ -870,7 +870,7 @@ selector: 'testEquality',
 fn: function (){
 var self=this;
 var o=nil;
-o=smalltalk.send((smalltalk.Object || Object), "_new", []);
+(o=smalltalk.send((smalltalk.Object || Object), "_new", []));
 smalltalk.send(self, "_deny_", [smalltalk.send(o, "__eq", [smalltalk.send((smalltalk.Object || Object), "_new", [])])]);
 smalltalk.send(self, "_assert_", [smalltalk.send(o, "__eq", [o])]);
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(o, "_yourself", []), "__eq", [o])]);
@@ -886,7 +886,7 @@ selector: 'testIdentity',
 fn: function (){
 var self=this;
 var o=nil;
-o=smalltalk.send((smalltalk.Object || Object), "_new", []);
+(o=smalltalk.send((smalltalk.Object || Object), "_new", []));
 smalltalk.send(self, "_deny_", [smalltalk.send(o, "__eq_eq", [smalltalk.send((smalltalk.Object || Object), "_new", [])])]);
 smalltalk.send(self, "_assert_", [smalltalk.send(o, "__eq_eq", [o])]);
 return self;}
@@ -911,7 +911,7 @@ selector: 'testBasicAccess',
 fn: function (){
 var self=this;
 var o=nil;
-o=smalltalk.send((smalltalk.Object || Object), "_new", []);
+(o=smalltalk.send((smalltalk.Object || Object), "_new", []));
 smalltalk.send(o, "_basicAt_put_", ["a", (1)]);
 smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_basicAt_", ["a"]), (1)]);
 smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_basicAt_", ["b"]), nil]);
@@ -938,8 +938,8 @@ fn: function (){
 var self=this;
 var o1=nil;
 var o2=nil;
-o1=smalltalk.send((smalltalk.Object || Object), "_new", []);
-o2=smalltalk.send((smalltalk.Object || Object), "_new", []);
+(o1=smalltalk.send((smalltalk.Object || Object), "_new", []));
+(o2=smalltalk.send((smalltalk.Object || Object), "_new", []));
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(o1, "_identityHash", []), "__eq_eq", [smalltalk.send(o1, "_identityHash", [])])]);
 smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send(o1, "_identityHash", []), "__eq_eq", [smalltalk.send(o2, "_identityHash", [])])]);
 return self;}
@@ -953,7 +953,7 @@ selector: 'testBasicPerform',
 fn: function (){
 var self=this;
 var o=nil;
-o=smalltalk.send((smalltalk.Object || Object), "_new", []);
+(o=smalltalk.send((smalltalk.Object || Object), "_new", []));
 smalltalk.send(o, "_basicAt_put_", ["func", (function(){return "hello";})]);
 smalltalk.send(o, "_basicAt_put_", ["func2", (function(a){return ((($receiver = a).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]);
 smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_basicPerform_", ["func"]), "hello"]);
@@ -984,7 +984,7 @@ selector: 'testInstVars',
 fn: function (){
 var self=this;
 var o=nil;
-o=smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_new", []);
+(o=smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_new", []));
 smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_instVarAt_", [smalltalk.symbolFor("foo")]), nil]);
 smalltalk.send(o, "_instVarAt_put_", [smalltalk.symbolFor("foo"), (1)]);
 smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_instVarAt_", [smalltalk.symbolFor("foo")]), (1)]);
@@ -1000,7 +1000,7 @@ selector: 'testYourself',
 fn: function (){
 var self=this;
 var o=nil;
-o=smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_new", []);
+(o=smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_new", []));
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(o, "_yourself", []), "__eq_eq", [o])]);
 return self;}
 }),
@@ -1172,7 +1172,7 @@ smalltalk.method({
 selector: 'foo:',
 fn: function (anObject){
 var self=this;
-self['@foo']=anObject;
+(self['@foo']=anObject);
 return self;}
 }),
 smalltalk.ObjectMock);
@@ -1293,7 +1293,7 @@ fn: function (){
 var self=this;
 smalltalk.send((10000), "_timesRepeat_", [(function(){var current=nil;
 var next=nil;
-next=smalltalk.send(smalltalk.send((smalltalk.Random || Random), "_new", []), "_next", []);smalltalk.send(self, "_assert_", [((($receiver = next).klass === smalltalk.Number) ? $receiver >=(0) : smalltalk.send($receiver, "__gt_eq", [(0)]))]);smalltalk.send(self, "_assert_", [((($receiver = next).klass === smalltalk.Number) ? $receiver <(1) : smalltalk.send($receiver, "__lt", [(1)]))]);smalltalk.send(self, "_deny_", [smalltalk.send(current, "__eq", [next])]);return smalltalk.send(next, "__eq", [current]);})]);
+(next=smalltalk.send(smalltalk.send((smalltalk.Random || Random), "_new", []), "_next", []));smalltalk.send(self, "_assert_", [((($receiver = next).klass === smalltalk.Number) ? $receiver >=(0) : smalltalk.send($receiver, "__gt_eq", [(0)]))]);smalltalk.send(self, "_assert_", [((($receiver = next).klass === smalltalk.Number) ? $receiver <(1) : smalltalk.send($receiver, "__lt", [(1)]))]);smalltalk.send(self, "_deny_", [smalltalk.send(current, "__eq", [next])]);return smalltalk.send(next, "__eq", [current]);})]);
 return self;}
 }),
 smalltalk.RandomTest);
@@ -1307,7 +1307,7 @@ smalltalk.method({
 selector: 'setUp',
 fn: function (){
 var self=this;
-self['@builder']=smalltalk.send((smalltalk.ClassBuilder || ClassBuilder), "_new", []);
+(self['@builder']=smalltalk.send((smalltalk.ClassBuilder || ClassBuilder), "_new", []));
 return self;}
 }),
 smalltalk.ClassBuilderTest);
@@ -1318,7 +1318,7 @@ smalltalk.method({
 selector: 'tearDown',
 fn: function (){
 var self=this;
-(($receiver = self['@theClass']) != nil && $receiver != undefined) ? (function(){smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_removeClass_", [self['@theClass']]);return self['@theClass']=nil;})() : nil;
+(($receiver = self['@theClass']) != nil && $receiver != undefined) ? (function(){smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_removeClass_", [self['@theClass']]);return (self['@theClass']=nil);})() : nil;
 return self;}
 }),
 smalltalk.ClassBuilderTest);
@@ -1329,7 +1329,7 @@ smalltalk.method({
 selector: 'testClassCopy',
 fn: function (){
 var self=this;
-self['@theClass']=smalltalk.send(self['@builder'], "_copyClass_named_", [(smalltalk.ObjectMock || ObjectMock), "ObjectMock2"]);
+(self['@theClass']=smalltalk.send(self['@builder'], "_copyClass_named_", [(smalltalk.ObjectMock || ObjectMock), "ObjectMock2"]));
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@theClass'], "_superclass", []), "__eq_eq", [smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_superclass", [])])]);
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@theClass'], "_instanceVariableNames", []), "__eq_eq", [smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_instanceVariableNames", [])])]);
 smalltalk.send(self, "_assert_equals_", [smalltalk.send(self['@theClass'], "_name", []), "ObjectMock2"]);
@@ -1360,7 +1360,7 @@ selector: 'testUnicity',
 fn: function (){
 var self=this;
 var set=nil;
-set=smalltalk.send((smalltalk.Set || Set), "_new", []);
+(set=smalltalk.send((smalltalk.Set || Set), "_new", []));
 smalltalk.send(set, "_add_", [(21)]);
 smalltalk.send(set, "_add_", ["hello"]);
 smalltalk.send(set, "_add_", [(21)]);
@@ -1390,7 +1390,7 @@ selector: 'testAddRemove',
 fn: function (){
 var self=this;
 var set=nil;
-set=smalltalk.send((smalltalk.Set || Set), "_new", []);
+(set=smalltalk.send((smalltalk.Set || Set), "_new", []));
 smalltalk.send(self, "_assert_", [smalltalk.send(set, "_isEmpty", [])]);
 smalltalk.send(set, "_add_", [(3)]);
 smalltalk.send(self, "_assert_", [smalltalk.send(set, "_includes_", [(3)])]);

+ 60 - 60
amber/js/Kernel-Tests.js

@@ -182,14 +182,14 @@ var self=this;
 var d1=nil;
 var d2=nil;
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []), "__eq", [smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])])]);
-d1=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
-d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
+(d1=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
+(d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
 smalltalk.send(self, "_assert_", [smalltalk.send(d1, "__eq", [d2])]);
-d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (3)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
+(d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (3)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
 smalltalk.send(self, "_deny_", [smalltalk.send(d1, "__eq", [d2])]);
-d2=(function($rec){smalltalk.send($rec, "_at_put_", [(2), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
+(d2=(function($rec){smalltalk.send($rec, "_at_put_", [(2), (2)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
 smalltalk.send(self, "_deny_", [smalltalk.send(d1, "__eq", [d2])]);
-d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);smalltalk.send($rec, "_at_put_", [(3), (4)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
+(d2=(function($rec){smalltalk.send($rec, "_at_put_", [(1), (2)]);smalltalk.send($rec, "_at_put_", [(3), (4)]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", [])));
 smalltalk.send(self, "_deny_", [smalltalk.send(d1, "__eq", [d2])]);
 return self;},
 args: [],
@@ -206,11 +206,11 @@ selector: unescape('testDynamicDictionaries'),
 category: 'tests',
 fn: function (){
 var self=this;
-smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.Dictionary._fromPairs_([smalltalk.send((1), "__minus_gt", ["hello"]),smalltalk.send((2), "__minus_gt", ["world"])]), "__eq", [smalltalk.send((smalltalk.Dictionary || Dictionary), "_with_with_", [smalltalk.send((1), "__minus_gt", ["hello"]), smalltalk.send((2), "__minus_gt", ["world"])])])]);
+smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.HashedCollection._fromPairs_([smalltalk.send("hello", "__minus_gt", [(1)])]), "_asDictionary", []), "__eq", [smalltalk.send((smalltalk.Dictionary || Dictionary), "_with_", [smalltalk.send("hello", "__minus_gt", [(1)])])])]);
 return self;},
 args: [],
-source: unescape('testDynamicDictionaries%0A%09self%20assert%3A%20%23%7B1%20-%3E%20%27hello%27.%202%20-%3E%20%27world%27%7D%20%3D%20%28Dictionary%20with%3A%201%20-%3E%20%27hello%27%20with%3A%202%20-%3E%20%27world%27%29'),
-messageSends: ["assert:", unescape("%3D"), unescape("-%3E"), "with:with:"],
+source: unescape('testDynamicDictionaries%0A%09self%20assert%3A%20%23%7B%27hello%27%20-%3E%201%7D%20asDictionary%20%3D%20%28Dictionary%20with%3A%20%27hello%27%20-%3E%201%29'),
+messageSends: ["assert:", unescape("%3D"), "asDictionary", unescape("-%3E"), "with:"],
 referencedClasses: ["Dictionary"]
 }),
 smalltalk.DictionaryTest);
@@ -223,7 +223,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var d=nil;
-d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
+(d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 smalltalk.send(d, "_at_put_", ["hello", "world"]);
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_at_", ["hello"]), "__eq", ["world"])]);
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_at_ifAbsent_", ["hello", (function(){return nil;})]), "__eq", ["world"])]);
@@ -248,7 +248,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var d=nil;
-d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
+(d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_size", []), "__eq", [(0)])]);
 smalltalk.send(d, "_at_put_", [(1), (2)]);
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(d, "_size", []), "__eq", [(1)])]);
@@ -270,7 +270,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var d=nil;
-d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
+(d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 smalltalk.send(d, "_at_put_", [(1), (2)]);
 smalltalk.send(d, "_at_put_", [(2), (3)]);
 smalltalk.send(d, "_at_put_", [(3), (4)]);
@@ -291,7 +291,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var d=nil;
-d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []);
+(d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 smalltalk.send(d, "_at_put_", [(1), (2)]);
 smalltalk.send(d, "_at_put_", [(2), (3)]);
 smalltalk.send(d, "_at_put_", [(3), (4)]);
@@ -644,10 +644,10 @@ category: 'tests',
 fn: function (){
 var self=this;
 var i=nil;
-i=(0);
-smalltalk.send((0), "_timesRepeat_", [(function(){return i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]);
+(i=(0));
+smalltalk.send((0), "_timesRepeat_", [(function(){return (i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})]);
 smalltalk.send(self, "_assert_equals_", [i, (0)]);
-smalltalk.send((5), "_timesRepeat_", [(function(){return i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]);
+smalltalk.send((5), "_timesRepeat_", [(function(){return (i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})]);
 smalltalk.send(self, "_assert_equals_", [i, (5)]);
 return self;},
 args: [],
@@ -693,6 +693,22 @@ smalltalk.NumberTest);
 
 
 smalltalk.addClass('JSObjectProxyTest', smalltalk.TestCase, [], 'Kernel-Tests');
+smalltalk.addMethod(
+unescape('_jsObject'),
+smalltalk.method({
+selector: unescape('jsObject'),
+category: 'accessing',
+fn: function (){
+var self=this;
+return jsObject = {a: 1, b: function() {return 2;}, c: function(object) {return object;}};
+return self;},
+args: [],
+source: unescape('jsObject%0A%09%3Creturn%20jsObject%20%3D%20%7Ba%3A%201%2C%20b%3A%20function%28%29%20%7Breturn%202%3B%7D%2C%20c%3A%20function%28object%29%20%7Breturn%20object%3B%7D%7D%3E'),
+messageSends: [],
+referencedClasses: []
+}),
+smalltalk.JSObjectProxyTest);
+
 smalltalk.addMethod(
 unescape('_testMethodWithArguments'),
 smalltalk.method({
@@ -721,7 +737,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var body=nil;
-body=(function($rec){smalltalk.send($rec, "_addClass_", ["amber"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send("body", "_asJQuery", []));
+(body=(function($rec){smalltalk.send($rec, "_addClass_", ["amber"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send("body", "_asJQuery", [])));
 smalltalk.send(self, "_assert_", [smalltalk.send(body, "_hasClass_", ["amber"])]);
 smalltalk.send(body, "_removeClass_", ["amber"]);
 smalltalk.send(self, "_deny_", [smalltalk.send(body, "_hasClass_", ["amber"])]);
@@ -752,22 +768,6 @@ referencedClasses: []
 }),
 smalltalk.JSObjectProxyTest);
 
-smalltalk.addMethod(
-unescape('_jsObject'),
-smalltalk.method({
-selector: unescape('jsObject'),
-category: 'accessing',
-fn: function (){
-var self=this;
-return jsObject = {a: 1, b: function() {return 2;}, c: function(object) {return object;}};
-return self;},
-args: [],
-source: unescape('jsObject%0A%09%3Creturn%20jsObject%20%3D%20%7Ba%3A%201%2C%20b%3A%20function%28%29%20%7Breturn%202%3B%7D%2C%20c%3A%20function%28object%29%20%7Breturn%20object%3B%7D%7D%3E'),
-messageSends: [],
-referencedClasses: []
-}),
-smalltalk.JSObjectProxyTest);
-
 smalltalk.addMethod(
 unescape('_testDNU'),
 smalltalk.method({
@@ -828,11 +828,11 @@ selector: unescape('setUp'),
 category: 'running',
 fn: function (){
 var self=this;
-self['@backUpCommitPathJs']=smalltalk.send((smalltalk.Package || Package), "_defaultCommitPathJs", []);
-self['@backUpCommitPathSt']=smalltalk.send((smalltalk.Package || Package), "_defaultCommitPathSt", []);
+(self['@backUpCommitPathJs']=smalltalk.send((smalltalk.Package || Package), "_defaultCommitPathJs", []));
+(self['@backUpCommitPathSt']=smalltalk.send((smalltalk.Package || Package), "_defaultCommitPathSt", []));
 smalltalk.send((smalltalk.Package || Package), "_resetCommitPaths", []);
-self['@zorkPackage']=smalltalk.send(smalltalk.send((smalltalk.Package || Package), "_new", []), "_name_", ["Zork"]);
-self['@grulPackage']=(function($rec){smalltalk.send($rec, "_name_", ["Grul"]);smalltalk.send($rec, "_commitPathJs_", [unescape("server/grul/js")]);smalltalk.send($rec, "_commitPathSt_", [unescape("grul/st")]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Package || Package), "_new", []));
+(self['@zorkPackage']=smalltalk.send(smalltalk.send((smalltalk.Package || Package), "_new", []), "_name_", ["Zork"]));
+(self['@grulPackage']=(function($rec){smalltalk.send($rec, "_name_", ["Grul"]);smalltalk.send($rec, "_commitPathJs_", [unescape("server/grul/js")]);smalltalk.send($rec, "_commitPathSt_", [unescape("grul/st")]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.Package || Package), "_new", [])));
 return self;},
 args: [],
 source: unescape('setUp%0A%09backUpCommitPathJs%20%3A%3D%20Package%20defaultCommitPathJs.%0A%09backUpCommitPathSt%20%3A%3D%20Package%20defaultCommitPathSt.%0A%0A%09Package%20resetCommitPaths.%0A%0A%09zorkPackage%20%3A%3D%20Package%20new%20name%3A%20%27Zork%27.%0A%09grulPackage%20%3A%3D%20Package%20new%20%0A%09%09%09%09%09name%3A%20%27Grul%27%3B%0A%09%09%09%09%09commitPathJs%3A%20%27server/grul/js%27%3B%0A%09%09%09%09%09commitPathSt%3A%20%27grul/st%27%3B%0A%09%09%09%09%09yourself'),
@@ -1118,11 +1118,11 @@ category: 'tests',
 fn: function (){
 var self=this;
 var i=nil;
-i=(0);
-(function(){while((function(){return ((($receiver = i).klass === smalltalk.Number) ? $receiver <(5) : smalltalk.send($receiver, "__lt", [(5)]));})()) {(function(){return i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})()}})();
+(i=(0));
+(function(){while((function(){return ((($receiver = i).klass === smalltalk.Number) ? $receiver <(5) : smalltalk.send($receiver, "__lt", [(5)]));})()) {(function(){return (i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
 smalltalk.send(self, "_assert_equals_", [i, (5)]);
-i=(0);
-(function(){while((function(){i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));return ((($receiver = i).klass === smalltalk.Number) ? $receiver <(5) : smalltalk.send($receiver, "__lt", [(5)]));})()) {}})();
+(i=(0));
+(function(){while((function(){(i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));return ((($receiver = i).klass === smalltalk.Number) ? $receiver <(5) : smalltalk.send($receiver, "__lt", [(5)]));})()) {}})();
 smalltalk.send(self, "_assert_equals_", [i, (5)]);
 return self;},
 args: [],
@@ -1140,11 +1140,11 @@ category: 'tests',
 fn: function (){
 var self=this;
 var i=nil;
-i=(0);
-(function(){while(!(function(){return ((($receiver = i).klass === smalltalk.Number) ? $receiver >(5) : smalltalk.send($receiver, "__gt", [(5)]));})()) {(function(){return i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})()}})();
+(i=(0));
+(function(){while(!(function(){return ((($receiver = i).klass === smalltalk.Number) ? $receiver >(5) : smalltalk.send($receiver, "__gt", [(5)]));})()) {(function(){return (i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));})()}})();
 smalltalk.send(self, "_assert_equals_", [i, (6)]);
-i=(0);
-(function(){while(!(function(){i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));return ((($receiver = i).klass === smalltalk.Number) ? $receiver >(5) : smalltalk.send($receiver, "__gt", [(5)]));})()) {}})();
+(i=(0));
+(function(){while(!(function(){(i=((($receiver = i).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));return ((($receiver = i).klass === smalltalk.Number) ? $receiver >(5) : smalltalk.send($receiver, "__gt", [(5)]));})()) {}})();
 smalltalk.send(self, "_assert_equals_", [i, (6)]);
 return self;},
 args: [],
@@ -1181,7 +1181,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var o=nil;
-o=smalltalk.send((smalltalk.Object || Object), "_new", []);
+(o=smalltalk.send((smalltalk.Object || Object), "_new", []));
 smalltalk.send(self, "_deny_", [smalltalk.send(o, "__eq", [smalltalk.send((smalltalk.Object || Object), "_new", [])])]);
 smalltalk.send(self, "_assert_", [smalltalk.send(o, "__eq", [o])]);
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(o, "_yourself", []), "__eq", [o])]);
@@ -1202,7 +1202,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var o=nil;
-o=smalltalk.send((smalltalk.Object || Object), "_new", []);
+(o=smalltalk.send((smalltalk.Object || Object), "_new", []));
 smalltalk.send(self, "_deny_", [smalltalk.send(o, "__eq_eq", [smalltalk.send((smalltalk.Object || Object), "_new", [])])]);
 smalltalk.send(self, "_assert_", [smalltalk.send(o, "__eq_eq", [o])]);
 return self;},
@@ -1237,7 +1237,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var o=nil;
-o=smalltalk.send((smalltalk.Object || Object), "_new", []);
+(o=smalltalk.send((smalltalk.Object || Object), "_new", []));
 smalltalk.send(o, "_basicAt_put_", ["a", (1)]);
 smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_basicAt_", ["a"]), (1)]);
 smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_basicAt_", ["b"]), nil]);
@@ -1274,8 +1274,8 @@ fn: function (){
 var self=this;
 var o1=nil;
 var o2=nil;
-o1=smalltalk.send((smalltalk.Object || Object), "_new", []);
-o2=smalltalk.send((smalltalk.Object || Object), "_new", []);
+(o1=smalltalk.send((smalltalk.Object || Object), "_new", []));
+(o2=smalltalk.send((smalltalk.Object || Object), "_new", []));
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(o1, "_identityHash", []), "__eq_eq", [smalltalk.send(o1, "_identityHash", [])])]);
 smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send(o1, "_identityHash", []), "__eq_eq", [smalltalk.send(o2, "_identityHash", [])])]);
 return self;},
@@ -1294,7 +1294,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var o=nil;
-o=smalltalk.send((smalltalk.Object || Object), "_new", []);
+(o=smalltalk.send((smalltalk.Object || Object), "_new", []));
 smalltalk.send(o, "_basicAt_put_", ["func", (function(){return "hello";})]);
 smalltalk.send(o, "_basicAt_put_", ["func2", (function(a){return ((($receiver = a).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));})]);
 smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_basicPerform_", ["func"]), "hello"]);
@@ -1335,7 +1335,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var o=nil;
-o=smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_new", []);
+(o=smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_new", []));
 smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_instVarAt_", [smalltalk.symbolFor("foo")]), nil]);
 smalltalk.send(o, "_instVarAt_put_", [smalltalk.symbolFor("foo"), (1)]);
 smalltalk.send(self, "_assert_equals_", [smalltalk.send(o, "_instVarAt_", [smalltalk.symbolFor("foo")]), (1)]);
@@ -1356,7 +1356,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var o=nil;
-o=smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_new", []);
+(o=smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_new", []));
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(o, "_yourself", []), "__eq_eq", [o])]);
 return self;},
 args: [],
@@ -1476,7 +1476,7 @@ smalltalk.send(self, "_assert_", [((($receiver = smalltalk.symbolFor("ab")).klas
 smalltalk.send(self, "_deny_", [((($receiver = smalltalk.symbolFor("bb")).klass === smalltalk.Number) ? $receiver <=smalltalk.symbolFor("ba") : smalltalk.send($receiver, "__lt_eq", [smalltalk.symbolFor("ba")]))]);
 return self;},
 args: [],
-source: unescape('testComparing%0A%09self%20assert%3A%20%23ab%20%3E%20%23aa.%0A%09self%20deny%3A%20%23ab%20%3E%20%23ba.%0A%0A%09self%20assert%3A%20%23ab%20%3C%20%23ba.%0A%09self%20deny%3A%20%23bb%20%3C%20%23ba.%0A%0A%09self%20assert%3A%20%23ab%20%3E%3D%20%23aa.%0A%09self%20deny%3A%20%23ab%20%3E%3D%20%23ba.%0A%0A%09self%20assert%3A%20%23ab%20%3C%3D%20%23ba.%0A%09self%20deny%3A%20%23bb%20%3C%3D%20%23ba%0A%0A%09%09'),
+source: unescape('testComparing%0A%09self%20assert%3A%20%23ab%20%3E%20%23aa.%0A%09self%20deny%3A%20%23ab%20%3E%20%23ba.%0A%0A%09self%20assert%3A%20%23ab%20%3C%20%23ba.%0A%09self%20deny%3A%20%23bb%20%3C%20%23ba.%0A%0A%09self%20assert%3A%20%23ab%20%3E%3D%20%23aa.%0A%09self%20deny%3A%20%23ab%20%3E%3D%20%23ba.%0A%0A%09self%20assert%3A%20%23ab%20%3C%3D%20%23ba.%0A%09self%20deny%3A%20%23bb%20%3C%3D%20%23ba'),
 messageSends: ["assert:", unescape("%3E"), "deny:", unescape("%3C"), unescape("%3E%3D"), unescape("%3C%3D")],
 referencedClasses: []
 }),
@@ -1593,7 +1593,7 @@ selector: unescape('foo%3A'),
 category: 'not yet classified',
 fn: function (anObject){
 var self=this;
-self['@foo']=anObject;
+(self['@foo']=anObject);
 return self;},
 args: ["anObject"],
 source: unescape('foo%3A%20anObject%0A%09foo%20%3A%3D%20anObject'),
@@ -1759,7 +1759,7 @@ fn: function (){
 var self=this;
 smalltalk.send((10000), "_timesRepeat_", [(function(){var current=nil;
 var next=nil;
-next=smalltalk.send(smalltalk.send((smalltalk.Random || Random), "_new", []), "_next", []);smalltalk.send(self, "_assert_", [((($receiver = next).klass === smalltalk.Number) ? $receiver >=(0) : smalltalk.send($receiver, "__gt_eq", [(0)]))]);smalltalk.send(self, "_assert_", [((($receiver = next).klass === smalltalk.Number) ? $receiver <(1) : smalltalk.send($receiver, "__lt", [(1)]))]);smalltalk.send(self, "_deny_", [smalltalk.send(current, "__eq", [next])]);return smalltalk.send(next, "__eq", [current]);})]);
+(next=smalltalk.send(smalltalk.send((smalltalk.Random || Random), "_new", []), "_next", []));smalltalk.send(self, "_assert_", [((($receiver = next).klass === smalltalk.Number) ? $receiver >=(0) : smalltalk.send($receiver, "__gt_eq", [(0)]))]);smalltalk.send(self, "_assert_", [((($receiver = next).klass === smalltalk.Number) ? $receiver <(1) : smalltalk.send($receiver, "__lt", [(1)]))]);smalltalk.send(self, "_deny_", [smalltalk.send(current, "__eq", [next])]);return smalltalk.send(next, "__eq", [current]);})]);
 return self;},
 args: [],
 source: unescape('textNext%0A%0A%0910000%20timesRepeat%3A%20%5B%0A%09%09%09%7C%20current%20next%20%7C%20%0A%09%09%09next%20%3A%3D%20Random%20new%20next.%0A%09%09%09self%20assert%3A%20%28next%20%3E%3D%200%29.%0A%09%09%09self%20assert%3A%20%28next%20%3C%201%29.%0A%09%09%09self%20deny%3A%20current%20%3D%20next.%0A%09%09%09next%20%3D%20current%5D'),
@@ -1778,7 +1778,7 @@ selector: unescape('setUp'),
 category: 'running',
 fn: function (){
 var self=this;
-self['@builder']=smalltalk.send((smalltalk.ClassBuilder || ClassBuilder), "_new", []);
+(self['@builder']=smalltalk.send((smalltalk.ClassBuilder || ClassBuilder), "_new", []));
 return self;},
 args: [],
 source: unescape('setUp%0A%09builder%20%3A%3D%20ClassBuilder%20new'),
@@ -1794,7 +1794,7 @@ selector: unescape('tearDown'),
 category: 'running',
 fn: function (){
 var self=this;
-(($receiver = self['@theClass']) != nil && $receiver != undefined) ? (function(){smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_removeClass_", [self['@theClass']]);return self['@theClass']=nil;})() : nil;
+(($receiver = self['@theClass']) != nil && $receiver != undefined) ? (function(){smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_removeClass_", [self['@theClass']]);return (self['@theClass']=nil);})() : nil;
 return self;},
 args: [],
 source: unescape('tearDown%0A%09theClass%20ifNotNil%3A%20%5BSmalltalk%20current%20removeClass%3A%20theClass.%20theClass%20%3A%3D%20nil%5D'),
@@ -1810,7 +1810,7 @@ selector: unescape('testClassCopy'),
 category: 'running',
 fn: function (){
 var self=this;
-self['@theClass']=smalltalk.send(self['@builder'], "_copyClass_named_", [(smalltalk.ObjectMock || ObjectMock), "ObjectMock2"]);
+(self['@theClass']=smalltalk.send(self['@builder'], "_copyClass_named_", [(smalltalk.ObjectMock || ObjectMock), "ObjectMock2"]));
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@theClass'], "_superclass", []), "__eq_eq", [smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_superclass", [])])]);
 smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@theClass'], "_instanceVariableNames", []), "__eq_eq", [smalltalk.send((smalltalk.ObjectMock || ObjectMock), "_instanceVariableNames", [])])]);
 smalltalk.send(self, "_assert_equals_", [smalltalk.send(self['@theClass'], "_name", []), "ObjectMock2"]);
@@ -1851,7 +1851,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var set=nil;
-set=smalltalk.send((smalltalk.Set || Set), "_new", []);
+(set=smalltalk.send((smalltalk.Set || Set), "_new", []));
 smalltalk.send(set, "_add_", [(21)]);
 smalltalk.send(set, "_add_", ["hello"]);
 smalltalk.send(set, "_add_", [(21)]);
@@ -1891,7 +1891,7 @@ category: 'tests',
 fn: function (){
 var self=this;
 var set=nil;
-set=smalltalk.send((smalltalk.Set || Set), "_new", []);
+(set=smalltalk.send((smalltalk.Set || Set), "_new", []));
 smalltalk.send(self, "_assert_", [smalltalk.send(set, "_isEmpty", [])]);
 smalltalk.send(set, "_add_", [(3)]);
 smalltalk.send(self, "_assert_", [smalltalk.send(set, "_includes_", [(3)])]);

+ 2 - 2
amber/js/Kernel-Transcript.deploy.js

@@ -74,7 +74,7 @@ smalltalk.method({
 selector: 'register:',
 fn: function (aTranscript){
 var self=this;
-self['@current']=aTranscript;
+(self['@current']=aTranscript);
 return self;}
 }),
 smalltalk.Transcript.klass);
@@ -110,7 +110,7 @@ selector: 'show:',
 fn: function (anObject){
 var self=this;
 var string=nil;
-string=smalltalk.send(anObject, "_asString", []);
+(string=smalltalk.send(anObject, "_asString", []));
 console.log(String(string));
 return self;}
 }),

+ 13 - 13
amber/js/Kernel-Transcript.js

@@ -12,7 +12,7 @@ var self=this;
 smalltalk.send(smalltalk.send(self, "_current", []), "_open", []);
 return self;},
 args: [],
-source: unescape('open%0A%20%20%20%20self%20current%20open'),
+source: unescape('open%0D%0A%20%20%20%20self%20current%20open'),
 messageSends: ["open", "current"],
 referencedClasses: []
 }),
@@ -28,7 +28,7 @@ var self=this;
 smalltalk.send(self, "_shouldNotImplement", []);
 return self;},
 args: [],
-source: unescape('new%0A%20%20%20%20self%20shouldNotImplement'),
+source: unescape('new%0D%0A%20%20%20%20self%20shouldNotImplement'),
 messageSends: ["shouldNotImplement"],
 referencedClasses: []
 }),
@@ -44,7 +44,7 @@ var self=this;
 return self['@current'];
 return self;},
 args: [],
-source: unescape('current%0A%20%20%20%20%5Ecurrent'),
+source: unescape('current%0D%0A%20%20%20%20%5Ecurrent'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -60,7 +60,7 @@ 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: unescape('show%3A%20anObject%0D%0A%20%20%20%20self%20current%20show%3A%20anObject'),
 messageSends: ["show:", "current"],
 referencedClasses: []
 }),
@@ -76,7 +76,7 @@ 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: unescape('cr%0D%0A%20%20%20%20self%20current%20show%3A%20String%20cr'),
 messageSends: ["show:", "current", "cr"],
 referencedClasses: ["String"]
 }),
@@ -92,7 +92,7 @@ var self=this;
 smalltalk.send(smalltalk.send(self, "_current", []), "_clear", []);
 return self;},
 args: [],
-source: unescape('clear%0A%20%20%20%20self%20current%20clear'),
+source: unescape('clear%0D%0A%20%20%20%20self%20current%20clear'),
 messageSends: ["clear", "current"],
 referencedClasses: []
 }),
@@ -105,10 +105,10 @@ selector: unescape('register%3A'),
 category: 'instance creation',
 fn: function (aTranscript){
 var self=this;
-self['@current']=aTranscript;
+(self['@current']=aTranscript);
 return self;},
 args: ["aTranscript"],
-source: unescape('register%3A%20aTranscript%0A%09current%20%3A%3D%20aTranscript'),
+source: unescape('register%3A%20aTranscript%0D%0A%09current%20%3A%3D%20aTranscript'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -126,7 +126,7 @@ var self=this;
 
 return self;},
 args: [],
-source: unescape('clear%0A%09%22no%20op%22'),
+source: unescape('clear%0D%0A%09%22no%20op%22'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -142,7 +142,7 @@ var self=this;
 
 return self;},
 args: [],
-source: unescape('cr%0A%09%22no%20op%22'),
+source: unescape('cr%0D%0A%09%22no%20op%22'),
 messageSends: [],
 referencedClasses: []
 }),
@@ -156,11 +156,11 @@ category: 'printing',
 fn: function (anObject){
 var self=this;
 var string=nil;
-string=smalltalk.send(anObject, "_asString", []);
+(string=smalltalk.send(anObject, "_asString", []));
 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: unescape('show%3A%20anObject%0D%0A%09%7C%20string%20%7C%0D%0A%09string%20%3A%3D%20anObject%20asString.%0D%0A%09%3Cconsole.log%28String%28string%29%29%3E'),
 messageSends: ["asString"],
 referencedClasses: []
 }),
@@ -193,7 +193,7 @@ 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: unescape('initialize%0D%0A%09Transcript%20register%3A%20self%20new'),
 messageSends: ["register:", "new"],
 referencedClasses: ["Transcript"]
 }),

+ 9 - 9
amber/js/SUnit.deploy.js

@@ -6,7 +6,7 @@ smalltalk.method({
 selector: 'setTestSelector:',
 fn: function (aSelector){
 var self=this;
-self['@testSelector']=aSelector;
+(self['@testSelector']=aSelector);
 return self;}
 }),
 smalltalk.TestCase);
@@ -187,7 +187,7 @@ selector: 'allTestSelectors',
 fn: function (){
 var self=this;
 var selectors=nil;
-selectors=smalltalk.send(self, "_testSelectors", []);
+(selectors=smalltalk.send(self, "_testSelectors", []));
 ((($receiver = smalltalk.send(self, "_shouldInheritSelectors", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(selectors, "_addAll_", [smalltalk.send(smalltalk.send(self, "_superclass", []), "_allTestSelectors", [])]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(selectors, "_addAll_", [smalltalk.send(smalltalk.send(self, "_superclass", []), "_allTestSelectors", [])]);})]));
 return selectors;
 return self;}
@@ -271,7 +271,7 @@ smalltalk.method({
 selector: 'total:',
 fn: function (aNumber){
 var self=this;
-self['@total']=aNumber;
+(self['@total']=aNumber);
 return self;}
 }),
 smalltalk.TestResult);
@@ -315,7 +315,7 @@ smalltalk.method({
 selector: 'increaseRuns',
 fn: function (){
 var self=this;
-self['@runs']=((($receiver = self['@runs']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));
+(self['@runs']=((($receiver = self['@runs']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));
 return self;}
 }),
 smalltalk.TestResult);
@@ -338,11 +338,11 @@ selector: 'initialize',
 fn: function (){
 var self=this;
 smalltalk.send(self, "_initialize", [], smalltalk.Object);
-self['@timestamp']=smalltalk.send((smalltalk.Date || Date), "_now", []);
-self['@runs']=(0);
-self['@errors']=smalltalk.send((smalltalk.Array || Array), "_new", []);
-self['@failures']=smalltalk.send((smalltalk.Array || Array), "_new", []);
-self['@total']=(0);
+(self['@timestamp']=smalltalk.send((smalltalk.Date || Date), "_now", []));
+(self['@runs']=(0));
+(self['@errors']=smalltalk.send((smalltalk.Array || Array), "_new", []));
+(self['@failures']=smalltalk.send((smalltalk.Array || Array), "_new", []));
+(self['@total']=(0));
 return self;}
 }),
 smalltalk.TestResult);

+ 9 - 9
amber/js/SUnit.js

@@ -7,7 +7,7 @@ selector: unescape('setTestSelector%3A'),
 category: 'accessing',
 fn: function (aSelector){
 var self=this;
-self['@testSelector']=aSelector;
+(self['@testSelector']=aSelector);
 return self;},
 args: ["aSelector"],
 source: unescape('setTestSelector%3A%20aSelector%0A%09testSelector%20%3A%3D%20aSelector'),
@@ -268,7 +268,7 @@ category: 'accessing',
 fn: function (){
 var self=this;
 var selectors=nil;
-selectors=smalltalk.send(self, "_testSelectors", []);
+(selectors=smalltalk.send(self, "_testSelectors", []));
 ((($receiver = smalltalk.send(self, "_shouldInheritSelectors", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(selectors, "_addAll_", [smalltalk.send(smalltalk.send(self, "_superclass", []), "_allTestSelectors", [])]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(selectors, "_addAll_", [smalltalk.send(smalltalk.send(self, "_superclass", []), "_allTestSelectors", [])]);})]));
 return selectors;
 return self;},
@@ -387,7 +387,7 @@ selector: unescape('total%3A'),
 category: 'accessing',
 fn: function (aNumber){
 var self=this;
-self['@total']=aNumber;
+(self['@total']=aNumber);
 return self;},
 args: ["aNumber"],
 source: unescape('total%3A%20aNumber%0A%09total%20%3A%3D%20aNumber'),
@@ -451,7 +451,7 @@ selector: unescape('increaseRuns'),
 category: 'accessing',
 fn: function (){
 var self=this;
-self['@runs']=((($receiver = self['@runs']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)]));
+(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'),
@@ -484,11 +484,11 @@ category: 'initialization',
 fn: function (){
 var self=this;
 smalltalk.send(self, "_initialize", [], smalltalk.Object);
-self['@timestamp']=smalltalk.send((smalltalk.Date || Date), "_now", []);
-self['@runs']=(0);
-self['@errors']=smalltalk.send((smalltalk.Array || Array), "_new", []);
-self['@failures']=smalltalk.send((smalltalk.Array || Array), "_new", []);
-self['@total']=(0);
+(self['@timestamp']=smalltalk.send((smalltalk.Date || Date), "_now", []));
+(self['@runs']=(0));
+(self['@errors']=smalltalk.send((smalltalk.Array || Array), "_new", []));
+(self['@failures']=smalltalk.send((smalltalk.Array || Array), "_new", []));
+(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'),

+ 3 - 1
amber/st/Compiler.st

@@ -1300,9 +1300,11 @@ visitValueNode: aNode
 !
 
 visitAssignmentNode: aNode
+	stream nextPutAll: '('.
 	self visit: aNode left.
 	stream nextPutAll: '='.
-	self visit: aNode right
+	self visit: aNode right.
+	stream nextPutAll: ')'
 !
 
 visitClassReferenceNode: aNode

+ 33 - 15
amber/st/Documentation.st

@@ -47,17 +47,27 @@ ch1introduction
 		title: 'Introduction';
 		contents: '
 
-##Amber Smalltalk in a nutshell.
+##Amber Smalltalk in a nutshell
 
-Amber is an implementation of the Smalltalk-80 language. 
-It allows developers to write client-side heavy web applications in Smalltalk. Amber includes an integrated development environment with a class browser, workspace and transcript.
+Amber is an implementation of the Smalltalk-80 language. It is designed to make client-side web development **faster, easier and more fun** as it allows developers to write HTML5 applications in a live Smalltalk environment!!
 
-Amber includes the following features:
+Amber is written in itself, including the IDE and the compiler and it runs **directly inside your browser**. The IDE is fairly complete with a class browser, workspace, transcript, unit test runner, object inspectors, cross reference tools and even a debugger.
 
-- It is semantically and syntactically equivalent to Pharo Smalltalk (the implementation considered as the reference)
-- It is written in itself and compiles into efficient JavaScript
-- A canvas API similar to Seaside to generate HTML
-- A jQuery binding.
+Noteworthy features:
+
+- Amber is semantically and syntactically very close to [Pharo Smalltalk](http://www.pharo-project.org). Pharo is considered the reference implementation.
+- Amber **seamlessly interacts with JavaScript** and can use its full eco system of libraries without any glue code needed.
+- Amber **has no dependencies** and can be used in any JavaScript runtime, not only inside browsers. An important example is [Node.js](http://nodejs.org).
+- Amber is a live Smalltalk that **compiles incrementally into efficient JavaScript** often mapping one-to-one with JavaScript equivalents.
+- Amber has a **Seaside influenced canvas library** to dynamically generate HTML.
+
+## Arguments for using Amber
+In our humble opinion the main arguments for using Amber are:
+
+- JavaScript is quite a broken language with lots of traps and odd quirks. It is the assembler of the Internet which is cool, but we don''t want to write in it.
+- Smalltalk as a language is immensely cleaner and more mature, both syntactically and semantically.
+- Smalltalk has a simple class model with a lightweight syntax for closures, it is in many ways a perfect match for the Good Parts of JavaScript.
+- Having a true live interactive incremental development environment where you can build your application directly in the browser is unbeatable.
 
 ## Disclaimer
 
@@ -71,13 +81,21 @@ ch2differencesWithOtherSmalltalks
 	^DocChapter new
 		title: 'Differences with other Smalltalks';
 		contents: '
-Amber has some differences with other Smalltalk implementations. 
-Because it maps Smalltalk constructs one-to-one with the JavaScript equivalent, including Smalltalk classes to JavaScript constructors, the core class library is simplified compared to Pharo Smalltalk. 
-The following list explains the main differences:
-
-- The collection class hierarchy is simpler compared to most Smalltalk implementations. As of today, there is no SortedCollection. The size of arrays is dynamic, and they behave like an ordered collection. 
-  They can also be sorted with the #sort* methods.
-- The Date class behaves like the Date and TimeStamp classes in Pharo Smalltalk. Therefore both Date today and Date now are valid in Amber.
+Amber has some differences with other Smalltalk implementations. This makes porting code a non-trivial thing, but still quite manageable.
+Because it maps Smalltalk constructs one-to-one with the JavaScript equivalent, including Smalltalk classes to JavaScript constructors, the core class library is simplified compared to Pharo Smalltalk.
+And since we want Amber to be useful in building lean browser apps we can''t let it bloat too much.
+
+But apart from missing things other Smalltalks may have, there are also things that are plain different:
+
+- The collection class hierarchy is much simpler compared to most Smalltalk implementations.
+- As of today, there is no SortedCollection. The size of arrays is dynamic, and they behave like an ordered collection. They can also be sorted with the `#sort*` methods.
+- The `Date` class behaves like the `Date` and `TimeStamp` classes in Pharo Smalltalk. Therefore both `Date today` and `Date now` are valid in Amber.
+- Amber does not have class Character, but `String` does implement some of Character behavior.
+- Amber does support class instance variables, but not class variables.
+- Amber only has global classes and packages, but not arbitrary objects. Use classes instead like `Smalltalk current` instead of `Smalltalk` etc.
+- Amber does not support pool dictionaries.
+- Amber uses **< ...javascript code... >** to inline JavaScript code and does not have pragmas.
+- Amber does not have class categories. The left side in the browser lists real Packages, but they feel much the same.
 '
 !
 

+ 2 - 3
amber/st/IDE.st

@@ -1267,8 +1267,7 @@ searchReferencedClassesFor: aString
 searchSelectorReferencesFor: aString
 	self classesAndMetaclasses do: [:each | 
 		each methodDictionary keysAndValuesDo: [:key :value | 
-			key = selector ifTrue: [self implementors add: value]].
-		each methodDictionary keysAndValuesDo: [:key :value | 
+			key = selector ifTrue: [self implementors add: value].
 			(value messageSends includes: selector) ifTrue: [
 				self senders add: value]]]
 ! !
@@ -2340,7 +2339,7 @@ inspectOn: anInspector
 		setVariables: variables
 ! !
 
-!Dictionary methodsFor: '*IDE'!
+!HashedCollection methodsFor: '*IDE'!
 
 inspectOn: anInspector
 	| variables |

+ 2 - 2
amber/st/Kernel-Classes.st

@@ -34,7 +34,7 @@ prototype
 !
 
 methodDictionary
-	<var dict = smalltalk.Dictionary._new();
+	<var dict = smalltalk.HashedCollection._new();
 	var methods = self.fn.prototype.methods;
 	for(var i in methods) {
 		if(methods[i].selector) {
@@ -92,7 +92,7 @@ protocolsDo: aBlock
 	its collection of methods in the sort order of category name."
 
 	| methodsByCategory |
-	methodsByCategory := Dictionary new.
+	methodsByCategory := HashedCollection new.
 	self methodDictionary values do: [:m |
 		(methodsByCategory at: m category ifAbsentPut: [Array new])
  			add: m]. 

+ 18 - 11
amber/st/Kernel-Objects.st

@@ -1261,11 +1261,11 @@ Object subclass: #Random
 	instanceVariableNames: ''
 	category: 'Kernel-Objects'!
 !Random commentStamp!
-Random is a random number generator and is implemented as a wrapper around javascript Math.random() and is trivially used like this:
+`Random` is a random number generator and is implemented as a trivial wrapper around javascript `Math.random()` and is used like this:
 
 	Random new next
 
-This will return a float x where x < 1 and x > 0. If you want a random integer from 1 to 10 you can use #atRandom
+This will return a float x where x < 1 and x > 0. If you want a random integer from 1 to 10 you can use `#atRandom`
 
 	10 atRandom
 
@@ -1273,17 +1273,19 @@ This will return a float x where x < 1 and x > 0. If you want a random integer f
 
 	(3 to: 7) atRandom
 
-...but be aware that #to: does not create an Interval as in other Smalltalks but in fact an Array of numbers, so it's better to use:
+...but be aware that `#to:` does not create an Interval as in other Smalltalk implementations but in fact an `Array` of numbers, so it's better to use:
 
 	5 atRandom + 2
 
-Since #atRandom is implemented in SequencableCollection you can easy pick an element at random:
+Since `#atRandom` is implemented in `SequencableCollection` you can easy pick an element at random:
 
 	#('a' 'b' 'c') atRandom
 
-...or perhaps a letter from a String:
+...or perhaps a letter from a `String`:
 
-	'abc' atRandom!
+	'abc' atRandom
+
+Since Amber does not have Characters this will return a `String` of length 1 like for example `'b'`.!
 
 !Random methodsFor: 'accessing'!
 
@@ -1299,17 +1301,22 @@ Object subclass: #Point
 	instanceVariableNames: 'x y'
 	category: 'Kernel-Objects'!
 !Point commentStamp!
-A Point represents an x-y pair of numbers usually designating a geometric coordinate.
-Points are traditionally created using the binary #@ message to a number:
+A `Point` represents an x-y pair of numbers usually designating a geometric coordinate.
+Points are traditionally created using the binary `#@` message to a number:
 
 	100@120
 
-Points can then be arithmetically manipulated using math:
+Points can then be arithmetically manipulated:
 
 	100@100 + (10@10)
 
-Creating a Point with a negative y-value will need a space after @ in order to avoid a parsing error,
-10@ -5 works fine, but not 10@-5
+...or for example:
+
+	(100@100) * 2
+
+**NOTE:** Creating a Point with a negative y-value will need a space after `@` in order to avoid a parsing error:
+
+	100@ -100 "but 100@-100 would not parse"
 
 Amber does not have much behavior in this class out-of-the-box.!
 

+ 1 - 1
amber/st/Kernel-Tests.st

@@ -95,7 +95,7 @@ testEquality
 !
 
 testDynamicDictionaries
-	self assert: #{1 -> 'hello'. 2 -> 'world'} = (Dictionary with: 1 -> 'hello' with: 2 -> 'world')
+	self assert: #{'hello' -> 1} asDictionary = (Dictionary with: 'hello' -> 1)
 !
 
 testAccessing

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