Procházet zdrojové kódy

recompiles all js files

Nicolas Petton před 10 roky
rodič
revize
3d40048e90

+ 4 - 2
js/Benchfib.js

@@ -114,11 +114,12 @@ selector: "jsbenchFib",
 protocol: '*Benchfib',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 if (this < 2) {
 return 1;
 } else {
 return (this-1)._jsbenchFib() + (this-2)._jsbenchFib() + 1;};
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"jsbenchFib",{},globals.Number)})},
 args: [],
 source: "jsbenchFib\x0a\x0a\x09<if (this < 2) {\x0areturn 1;\x0a} else {\x0areturn (this-1)._jsbenchFib() + (this-2)._jsbenchFib() + 1;}>",
 messageSends: [],
@@ -132,6 +133,7 @@ selector: "jsbenchmark",
 protocol: '*Benchfib',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 var size = 8190;
 var count;
@@ -154,7 +156,7 @@ for (var z=0;z<this;z++) {
 	}
 }
 return count;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"jsbenchmark",{},globals.Number)})},
 args: [],
 source: "jsbenchmark\x0a\x0a<\x0avar size = 8190;\x0avar count;\x0afor (var z=0;z<this;z++) {\x0a\x09count = 0;\x0a\x09var flags = new Array();\x0a\x09for (var p=0; p<size; p++) {\x0a\x09flags[p] = true;\x0a\x09}\x0a\x09for (var i=1;i<=size;i++) {\x0a\x09\x09if (flags[i-1]) {\x0a\x09\x09\x09var prime = i+1;\x0a\x09\x09\x09var k = i + prime;\x0a\x09\x09\x09while (k <= size) {\x0a\x09\x09\x09\x09flags[k-1] = false;\x0a\x09\x09\x09\x09k = k + prime;\x0a\x09\x09\x09}\x0a\x09\x09\x09count = count + 1;\x0a\x09\x09}\x0a\x09}\x0a}\x0areturn count>",
 messageSends: [],

+ 24 - 12
js/Canvas.js

@@ -64,8 +64,9 @@ selector: "isAvailable",
 protocol: 'testing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return typeof window !== "undefined" && typeof jQuery !== "undefined";
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"isAvailable",{},globals.BrowserInterface)})},
 args: [],
 source: "isAvailable\x0a<return typeof window !== \x22undefined\x22 && typeof jQuery !== \x22undefined\x22>",
 messageSends: [],
@@ -2437,8 +2438,9 @@ selector: "isDOMAvailable",
 protocol: 'instance creation',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
  return typeof document !== 'undefined' ;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"isDOMAvailable",{},globals.HTMLSnippet.klass)})},
 args: [],
 source: "isDOMAvailable\x0a\x09< return typeof document !== 'undefined' >",
 messageSends: [],
@@ -2589,13 +2591,14 @@ selector: "appendChild:",
 protocol: 'adding',
 fn: function (anElement){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 var element=self['@element'];
 	if (null == element.canHaveChildren || element.canHaveChildren) {
 		element.appendChild(anElement);
 	} else {
 		element.text = String(element.text) + anElement.innerHTML;
 	} ;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"appendChild:",{anElement:anElement},globals.TagBrush)})},
 args: ["anElement"],
 source: "appendChild: anElement\x0a\x09\x22In IE7 and IE8 appendChild fails on several node types. So we need to check\x22\x0a\x09<var element=self['@element'];\x0a\x09if (null == element.canHaveChildren || element.canHaveChildren) {\x0a\x09\x09element.appendChild(anElement);\x0a\x09} else {\x0a\x09\x09element.text = String(element.text) + anElement.innerHTML;\x0a\x09} >",
 messageSends: [],
@@ -2609,8 +2612,9 @@ selector: "appendDocumentFragment:",
 protocol: 'private',
 fn: function (anElement){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 var element=self['@element'].appendChild(anElement["@element"]);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"appendDocumentFragment:",{anElement:anElement},globals.TagBrush)})},
 args: ["anElement"],
 source: "appendDocumentFragment: anElement\x0a\x09<var element=self['@element'].appendChild(anElement[\x22@element\x22])>",
 messageSends: [],
@@ -2696,8 +2700,9 @@ selector: "at:ifAbsent:",
 protocol: 'attributes',
 fn: function (aString,aBlock){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self['@element'].hasAttribute(aString) ? self['@element'].getAttribute(aString) : aBlock._value();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"at:ifAbsent:",{aString:aString,aBlock:aBlock},globals.TagBrush)})},
 args: ["aString", "aBlock"],
 source: "at: aString ifAbsent: aBlock\x0a\x09<return self['@element'].hasAttribute(aString) ? self['@element'].getAttribute(aString) : aBlock._value()>",
 messageSends: [],
@@ -2711,8 +2716,9 @@ selector: "at:put:",
 protocol: 'attributes',
 fn: function (aString,aValue){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self['@element'].setAttribute(aString, aValue); return aValue;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"at:put:",{aString:aString,aValue:aValue},globals.TagBrush)})},
 args: ["aString", "aValue"],
 source: "at: aString put: aValue\x0a\x09<self['@element'].setAttribute(aString, aValue); return aValue>",
 messageSends: [],
@@ -2726,8 +2732,9 @@ selector: "class:",
 protocol: 'attributes',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self['@element'].className = aString;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"class:",{aString:aString},globals.TagBrush)})},
 args: ["aString"],
 source: "class: aString\x0a\x09<self['@element'].className = aString>",
 messageSends: [],
@@ -2807,8 +2814,9 @@ selector: "createElementFor:",
 protocol: 'private',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return document.createElement(String(aString));
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"createElementFor:",{aString:aString},globals.TagBrush)})},
 args: ["aString"],
 source: "createElementFor: aString\x0a\x09<return document.createElement(String(aString))>",
 messageSends: [],
@@ -2822,8 +2830,9 @@ selector: "createTextNodeFor:",
 protocol: 'private',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return document.createTextNode(String(aString));
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"createTextNodeFor:",{aString:aString},globals.TagBrush)})},
 args: ["aString"],
 source: "createTextNodeFor: aString\x0a\x09<return document.createTextNode(String(aString))>",
 messageSends: [],
@@ -3416,8 +3425,9 @@ selector: "removeAt:",
 protocol: 'attributes',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self['@element'].removeAttribute(aString);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"removeAt:",{aString:aString},globals.TagBrush)})},
 args: ["aString"],
 source: "removeAt: aString\x0a\x09<self['@element'].removeAttribute(aString)>",
 messageSends: [],
@@ -3832,8 +3842,9 @@ selector: "asJQuery",
 protocol: '*Canvas',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return jQuery(String(self));
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"asJQuery",{},globals.String)})},
 args: [],
 source: "asJQuery\x0a\x09<return jQuery(String(self))>",
 messageSends: [],
@@ -3847,8 +3858,9 @@ selector: "asJQuery",
 protocol: '*Canvas',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return jQuery(self['@jsObject']);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"asJQuery",{},globals.JSObjectProxy)})},
 args: [],
 source: "asJQuery\x0a\x09<return jQuery(self['@jsObject'])>",
 messageSends: [],

+ 2 - 1
js/Compiler-Core.js

@@ -420,8 +420,9 @@ selector: "eval:",
 protocol: 'compiling',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return eval(aString);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString},globals.Compiler)})},
 args: ["aString"],
 source: "eval: aString\x0a\x09<return eval(aString)>",
 messageSends: [],

+ 2 - 1
js/Compiler-Exceptions.js

@@ -190,8 +190,9 @@ selector: "basicSignal:",
 protocol: 'error handling',
 fn: function (anError){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 throw anError;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicSignal:",{anError:anError},globals.RethrowErrorHandler)})},
 args: ["anError"],
 source: "basicSignal: anError\x0a        <throw anError>",
 messageSends: [],

+ 2 - 1
js/Compiler-Semantic.js

@@ -1402,8 +1402,9 @@ selector: "isVariableGloballyUndefined:",
 protocol: 'testing',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return eval('typeof ' + aString + ' == "undefined"');
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"isVariableGloballyUndefined:",{aString:aString},globals.SemanticAnalyzer)})},
 args: ["aString"],
 source: "isVariableGloballyUndefined: aString\x0a\x09<return eval('typeof ' + aString + ' == \x22undefined\x22')>",
 messageSends: [],

+ 2 - 1
js/Helios-Core.js

@@ -2415,10 +2415,11 @@ selector: "positionOf:",
 protocol: 'accessing',
 fn: function (aListItem){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
     	return aListItem.parent().children().get().indexOf(aListItem.get(0)) + 1
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"positionOf:",{aListItem:aListItem},globals.HLListWidget)})},
 args: ["aListItem"],
 source: "positionOf: aListItem\x0a\x09<\x0a    \x09return aListItem.parent().children().get().indexOf(aListItem.get(0)) + 1\x0a\x09>",
 messageSends: [],

+ 2 - 1
js/Helios-Inspector.js

@@ -280,6 +280,7 @@ selector: "onKeyDown:",
 protocol: 'reactions',
 fn: function (anEvent){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 if(anEvent.ctrlKey) {
 		if(anEvent.keyCode === 80) { //ctrl+p
 			self._printIt();
@@ -297,7 +298,7 @@ if(anEvent.ctrlKey) {
 			return false;
 		}
 	};
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"onKeyDown:",{anEvent:anEvent},globals.HLInspectorModel)})},
 args: ["anEvent"],
 source: "onKeyDown: anEvent\x0a\x0a\x09<if(anEvent.ctrlKey) {\x0a\x09\x09if(anEvent.keyCode === 80) { //ctrl+p\x0a\x09\x09\x09self._printIt();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09\x09if(anEvent.keyCode === 68) { //ctrl+d\x0a\x09\x09\x09self._doIt();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09\x09if(anEvent.keyCode === 73) { //ctrl+i\x0a\x09\x09\x09self._inspectIt();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09}>",
 messageSends: [],

+ 6 - 3
js/Helios-Workspace.js

@@ -946,8 +946,9 @@ selector: "setEditorOn:",
 protocol: 'actions',
 fn: function (aTextarea){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self['@editor'] = CodeMirror.fromTextArea(aTextarea, self._editorOptions());
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"setEditorOn:",{aTextarea:aTextarea},globals.HLCodeWidget)})},
 args: ["aTextarea"],
 source: "setEditorOn: aTextarea\x0a\x09<self['@editor'] = CodeMirror.fromTextArea(aTextarea, self._editorOptions())>",
 messageSends: [],
@@ -1278,13 +1279,14 @@ selector: "setupCodeMirror",
 protocol: 'initialization',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
  
 		CodeMirror.keyMap.default.fallthrough = ["basic"];
 		CodeMirror.commands.autocomplete = function(cm) {
 			CodeMirror.showHint(cm, self._hintFor_options_);
 		}
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"setupCodeMirror",{},globals.HLCodeWidget.klass)})},
 args: [],
 source: "setupCodeMirror\x0a\x09< \x0a\x09\x09CodeMirror.keyMap.default.fallthrough = [\x22basic\x22];\x0a\x09\x09CodeMirror.commands.autocomplete = function(cm) {\x0a\x09\x09\x09CodeMirror.showHint(cm, self._hintFor_options_);\x0a\x09\x09}\x0a\x09>",
 messageSends: [],
@@ -1341,8 +1343,9 @@ selector: "setupKeyMaps",
 protocol: 'initialization',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 CodeMirror.keyMap['Amber'] = self._keyMap();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"setupKeyMaps",{},globals.HLCodeWidget.klass)})},
 args: [],
 source: "setupKeyMaps\x0a\x09<CodeMirror.keyMap['Amber'] = self._keyMap()>",
 messageSends: [],

+ 42 - 38
js/IDE.js

@@ -669,6 +669,7 @@ selector: "handleKeyDown:",
 protocol: 'actions',
 fn: function (anEvent){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 if(anEvent.ctrlKey) {
 		if(anEvent.keyCode === 80) { //ctrl+p
 			self._printIt();
@@ -686,7 +687,7 @@ if(anEvent.ctrlKey) {
 			return false;
 		}
 	};
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"handleKeyDown:",{anEvent:anEvent},globals.SourceArea)})},
 args: ["anEvent"],
 source: "handleKeyDown: anEvent\x0a\x09<if(anEvent.ctrlKey) {\x0a\x09\x09if(anEvent.keyCode === 80) { //ctrl+p\x0a\x09\x09\x09self._printIt();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09\x09if(anEvent.keyCode === 68) { //ctrl+d\x0a\x09\x09\x09self._doIt();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09\x09if(anEvent.keyCode === 73) { //ctrl+i\x0a\x09\x09\x09self._inspectIt();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09}>",
 messageSends: [],
@@ -943,6 +944,7 @@ selector: "setEditorOn:",
 protocol: 'accessing',
 fn: function (aTextarea){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self['@editor'] = CodeMirror.fromTextArea(aTextarea, {
 		theme: 'default',
 		mode: 'text/x-stsrc',
@@ -953,7 +955,7 @@ self['@editor'] = CodeMirror.fromTextArea(aTextarea, {
 		matchBrackets: true,
 		electricChars: false
 	});
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"setEditorOn:",{aTextarea:aTextarea},globals.SourceArea)})},
 args: ["aTextarea"],
 source: "setEditorOn: aTextarea\x0a\x09<self['@editor'] = CodeMirror.fromTextArea(aTextarea, {\x0a\x09\x09theme: 'default',\x0a\x09\x09mode: 'text/x-stsrc',\x0a\x09\x09lineNumbers: true,\x0a\x09\x09enterMode: 'flat',\x0a\x09\x09indentWithTabs: true,\x0a\x09\x09indentUnit: 4,\x0a\x09\x09matchBrackets: true,\x0a\x09\x09electricChars: false\x0a\x09})>",
 messageSends: [],
@@ -1019,8 +1021,9 @@ selector: "setupCodeMirror",
 protocol: 'initialization',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
  CodeMirror.keyMap["default"].fallthrough = ["basic"] ;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"setupCodeMirror",{},globals.SourceArea.klass)})},
 args: [],
 source: "setupCodeMirror\x0a\x09< CodeMirror.keyMap[\x22default\x22].fallthrough = [\x22basic\x22] >",
 messageSends: [],
@@ -2487,6 +2490,7 @@ selector: "handleSourceAreaKeyDown:",
 protocol: 'actions',
 fn: function (anEvent){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 if(anEvent.ctrlKey) {
 		if(anEvent.keyCode === 83) { //ctrl+s
 			self._compile();
@@ -2495,7 +2499,7 @@ if(anEvent.ctrlKey) {
 		}
 	}
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"handleSourceAreaKeyDown:",{anEvent:anEvent},globals.Browser)})},
 args: ["anEvent"],
 source: "handleSourceAreaKeyDown: anEvent\x0a\x09<if(anEvent.ctrlKey) {\x0a\x09\x09if(anEvent.keyCode === 83) { //ctrl+s\x0a\x09\x09\x09self._compile();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09}\x0a\x09>",
 messageSends: [],
@@ -7346,27 +7350,21 @@ var $1;
 variables=_st($Dictionary())._new();
 _st(variables)._at_put_("#self",self);
 $ctx1.sendIdx["at:put:"]=1;
-_st(variables)._at_put_("#home",self._home());
+_st(variables)._at_put_("#keys",self._keys());
 $ctx1.sendIdx["at:put:"]=2;
-_st(variables)._at_put_("#receiver",self._receiver());
-$ctx1.sendIdx["at:put:"]=3;
-_st(variables)._at_put_("#selector",self._selector());
-$ctx1.sendIdx["at:put:"]=4;
-_st(variables)._at_put_("#temps",self._temps());
-$ctx1.sendIdx["at:put:"]=5;
-_st(_st(self._class())._instanceVariableNames())._do_((function(each){
+self._keysAndValuesDo_((function(key,value){
 return smalltalk.withContext(function($ctx2) {
-return _st(variables)._at_put_(each,self._instVarAt_(each));
-}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)})}));
+return _st(variables)._at_put_(key,value);
+}, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1,1)})}));
 _st(anInspector)._setLabel_(self._printString());
 $1=_st(anInspector)._setVariables_(variables);
-return self}, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},globals.MethodContext)})},
+return self}, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},globals.AssociativeCollection)})},
 args: ["anInspector"],
-source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09variables at: '#home' put: self home.\x0a\x09variables at: '#receiver' put: self receiver.\x0a\x09variables at: '#selector' put: self selector.\x0a\x09variables at: '#temps' put: self temps.\x0a\x09self class instanceVariableNames do: [ :each |\x0a\x09\x09variables at: each put: (self instVarAt: each) ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
-messageSends: ["new", "at:put:", "home", "receiver", "selector", "temps", "do:", "instanceVariableNames", "class", "instVarAt:", "setLabel:", "printString", "setVariables:"],
+source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09variables at: '#keys' put: self keys.\x0a\x09self keysAndValuesDo: [ :key :value |\x0a\x09\x09variables at: key put: value ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
+messageSends: ["new", "at:put:", "keys", "keysAndValuesDo:", "setLabel:", "printString", "setVariables:"],
 referencedClasses: ["Dictionary"]
 }),
-globals.MethodContext);
+globals.AssociativeCollection);
 
 smalltalk.addMethod(
 smalltalk.method({
@@ -7374,28 +7372,29 @@ selector: "inspectOn:",
 protocol: '*IDE',
 fn: function (anInspector){
 var self=this;
-var variables;
+var variables,i;
 function $Dictionary(){return globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
 var $1;
 variables=_st($Dictionary())._new();
 _st(variables)._at_put_("#self",self);
 $ctx1.sendIdx["at:put:"]=1;
-_st(variables)._at_put_("#keys",self._keys());
-$ctx1.sendIdx["at:put:"]=2;
-self._keysAndValuesDo_((function(key,value){
+i=(1);
+self._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
-return _st(variables)._at_put_(key,value);
-}, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1,1)})}));
+_st(variables)._at_put_(i,each);
+i=_st(i).__plus((1));
+return i;
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)})}));
 _st(anInspector)._setLabel_(self._printString());
 $1=_st(anInspector)._setVariables_(variables);
-return self}, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},globals.AssociativeCollection)})},
+return self}, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables,i:i},globals.Set)})},
 args: ["anInspector"],
-source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09variables at: '#keys' put: self keys.\x0a\x09self keysAndValuesDo: [ :key :value |\x0a\x09\x09variables at: key put: value ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
-messageSends: ["new", "at:put:", "keys", "keysAndValuesDo:", "setLabel:", "printString", "setVariables:"],
+source: "inspectOn: anInspector\x0a\x09| variables i |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09i := 1.\x0a\x09self do: [ :each |\x0a\x09\x09variables at: i put: each.\x0a\x09\x09i := i + 1 ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
+messageSends: ["new", "at:put:", "do:", "+", "setLabel:", "printString", "setVariables:"],
 referencedClasses: ["Dictionary"]
 }),
-globals.AssociativeCollection);
+globals.Set);
 
 smalltalk.addMethod(
 smalltalk.method({
@@ -7403,28 +7402,33 @@ selector: "inspectOn:",
 protocol: '*IDE',
 fn: function (anInspector){
 var self=this;
-var variables,i;
+var variables;
 function $Dictionary(){return globals.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
 return smalltalk.withContext(function($ctx1) { 
 var $1;
 variables=_st($Dictionary())._new();
 _st(variables)._at_put_("#self",self);
 $ctx1.sendIdx["at:put:"]=1;
-i=(1);
-self._do_((function(each){
+_st(variables)._at_put_("#home",self._home());
+$ctx1.sendIdx["at:put:"]=2;
+_st(variables)._at_put_("#receiver",self._receiver());
+$ctx1.sendIdx["at:put:"]=3;
+_st(variables)._at_put_("#selector",self._selector());
+$ctx1.sendIdx["at:put:"]=4;
+_st(variables)._at_put_("#temps",self._temps());
+$ctx1.sendIdx["at:put:"]=5;
+_st(_st(self._class())._instanceVariableNames())._do_((function(each){
 return smalltalk.withContext(function($ctx2) {
-_st(variables)._at_put_(i,each);
-i=_st(i).__plus((1));
-return i;
+return _st(variables)._at_put_(each,self._instVarAt_(each));
 }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)})}));
 _st(anInspector)._setLabel_(self._printString());
 $1=_st(anInspector)._setVariables_(variables);
-return self}, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables,i:i},globals.Set)})},
+return self}, function($ctx1) {$ctx1.fill(self,"inspectOn:",{anInspector:anInspector,variables:variables},globals.MethodContext)})},
 args: ["anInspector"],
-source: "inspectOn: anInspector\x0a\x09| variables i |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09i := 1.\x0a\x09self do: [ :each |\x0a\x09\x09variables at: i put: each.\x0a\x09\x09i := i + 1 ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
-messageSends: ["new", "at:put:", "do:", "+", "setLabel:", "printString", "setVariables:"],
+source: "inspectOn: anInspector\x0a\x09| variables |\x0a\x09variables := Dictionary new.\x0a\x09variables at: '#self' put: self.\x0a\x09variables at: '#home' put: self home.\x0a\x09variables at: '#receiver' put: self receiver.\x0a\x09variables at: '#selector' put: self selector.\x0a\x09variables at: '#temps' put: self temps.\x0a\x09self class instanceVariableNames do: [ :each |\x0a\x09\x09variables at: each put: (self instVarAt: each) ].\x0a\x09anInspector\x0a\x09\x09setLabel: self printString;\x0a\x09\x09setVariables: variables",
+messageSends: ["new", "at:put:", "home", "receiver", "selector", "temps", "do:", "instanceVariableNames", "class", "instVarAt:", "setLabel:", "printString", "setVariables:"],
 referencedClasses: ["Dictionary"]
 }),
-globals.Set);
+globals.MethodContext);
 
 });

+ 36 - 18
js/Kernel-Classes.js

@@ -221,8 +221,9 @@ selector: "basicAddCompiledMethod:",
 protocol: 'private',
 fn: function (aMethod){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 smalltalk.addMethod(aMethod, self);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicAddCompiledMethod:",{aMethod:aMethod},globals.Behavior)})},
 args: ["aMethod"],
 source: "basicAddCompiledMethod: aMethod\x0a\x09<smalltalk.addMethod(aMethod, self)>",
 messageSends: [],
@@ -236,8 +237,9 @@ selector: "basicNew",
 protocol: 'instance creation',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return new self.fn();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicNew",{},globals.Behavior)})},
 args: [],
 source: "basicNew\x0a\x09<return new self.fn()>",
 messageSends: [],
@@ -251,8 +253,9 @@ selector: "basicRemoveCompiledMethod:",
 protocol: 'private',
 fn: function (aMethod){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 smalltalk.removeMethod(aMethod,self);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveCompiledMethod:",{aMethod:aMethod},globals.Behavior)})},
 args: ["aMethod"],
 source: "basicRemoveCompiledMethod: aMethod\x0a\x09<smalltalk.removeMethod(aMethod,self)>",
 messageSends: [],
@@ -501,8 +504,9 @@ selector: "instanceVariableNames",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.iVarNames;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"instanceVariableNames",{},globals.Behavior)})},
 args: [],
 source: "instanceVariableNames\x0a\x09<return self.iVarNames>",
 messageSends: [],
@@ -531,8 +535,9 @@ selector: "javascriptConstructor",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.fn;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"javascriptConstructor",{},globals.Behavior)})},
 args: [],
 source: "javascriptConstructor\x0a\x09\x22Answer the JS constructor used to instantiate. See boot.js\x22\x0a\x09\x0a\x09<return self.fn>",
 messageSends: [],
@@ -546,8 +551,9 @@ selector: "javascriptConstructor:",
 protocol: 'accessing',
 fn: function (aJavaScriptFunction){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 smalltalk.setClassConstructor(self, aJavaScriptFunction);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"javascriptConstructor:",{aJavaScriptFunction:aJavaScriptFunction},globals.Behavior)})},
 args: ["aJavaScriptFunction"],
 source: "javascriptConstructor: aJavaScriptFunction\x0a\x09\x22Set the JS constructor used to instantiate.\x0a\x09See the JS counter-part in boot.js `smalltalk.setClassConstructor'\x22\x0a\x09\x0a\x09<smalltalk.setClassConstructor(self, aJavaScriptFunction);>",
 messageSends: [],
@@ -615,6 +621,7 @@ selector: "methodDictionary",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 var dict = globals.HashedCollection._new();
 	var methods = self.methods;
 	Object.keys(methods).forEach(function(i) {
@@ -623,7 +630,7 @@ var dict = globals.HashedCollection._new();
 		}
 	});
 	return dict;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"methodDictionary",{},globals.Behavior)})},
 args: [],
 source: "methodDictionary\x0a\x09<var dict = globals.HashedCollection._new();\x0a\x09var methods = self.methods;\x0a\x09Object.keys(methods).forEach(function(i) {\x0a\x09\x09if(methods[i].selector) {\x0a\x09\x09\x09dict._at_put_(methods[i].selector, methods[i]);\x0a\x09\x09}\x0a\x09});\x0a\x09return dict>",
 messageSends: [],
@@ -716,8 +723,9 @@ selector: "name",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.className || nil;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"name",{},globals.Behavior)})},
 args: [],
 source: "name\x0a\x09<return self.className || nil>",
 messageSends: [],
@@ -864,8 +872,9 @@ selector: "prototype",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.fn.prototype;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"prototype",{},globals.Behavior)})},
 args: [],
 source: "prototype\x0a\x09<return self.fn.prototype>",
 messageSends: [],
@@ -978,8 +987,9 @@ selector: "superclass",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.superclass || nil;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"superclass",{},globals.Behavior)})},
 args: [],
 source: "superclass\x0a\x09<return self.superclass || nil>",
 messageSends: [],
@@ -1327,8 +1337,9 @@ selector: "subclasses",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.subclasses._copy();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"subclasses",{},globals.Class)})},
 args: [],
 source: "subclasses\x0a\x09<return self.subclasses._copy()>",
 messageSends: [],
@@ -1401,8 +1412,9 @@ selector: "instanceClass",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.instanceClass;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"instanceClass",{},globals.Metaclass)})},
 args: [],
 source: "instanceClass\x0a\x09<return self.instanceClass>",
 messageSends: [],
@@ -1562,11 +1574,12 @@ selector: "basicAddSubclassOf:named:instanceVariableNames:package:",
 protocol: 'private',
 fn: function (aClass,aString,aCollection,packageName){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		smalltalk.addClass(aString, aClass, aCollection, packageName);
 		return globals[aString]
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicAddSubclassOf:named:instanceVariableNames:package:",{aClass:aClass,aString:aString,aCollection:aCollection,packageName:packageName},globals.ClassBuilder)})},
 args: ["aClass", "aString", "aCollection", "packageName"],
 source: "basicAddSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName\x0a\x09<\x0a\x09\x09smalltalk.addClass(aString, aClass, aCollection, packageName);\x0a\x09\x09return globals[aString]\x0a\x09>",
 messageSends: [],
@@ -1617,8 +1630,9 @@ selector: "basicRemoveClass:",
 protocol: 'private',
 fn: function (aClass){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 smalltalk.removeClass(aClass);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicRemoveClass:",{aClass:aClass},globals.ClassBuilder)})},
 args: ["aClass"],
 source: "basicRemoveClass: aClass\x0a\x09<smalltalk.removeClass(aClass)>",
 messageSends: [],
@@ -1632,12 +1646,13 @@ selector: "basicRenameClass:to:",
 protocol: 'private',
 fn: function (aClass,aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		globals[aString] = aClass;
 		delete globals[aClass.className];
 		aClass.className = aString;
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicRenameClass:to:",{aClass:aClass,aString:aString},globals.ClassBuilder)})},
 args: ["aClass", "aString"],
 source: "basicRenameClass: aClass to: aString\x0a\x09<\x0a\x09\x09globals[aString] = aClass;\x0a\x09\x09delete globals[aClass.className];\x0a\x09\x09aClass.className = aString;\x0a\x09>",
 messageSends: [],
@@ -1651,12 +1666,13 @@ selector: "basicSwapClassNames:with:",
 protocol: 'private',
 fn: function (aClass,anotherClass){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var tmp = aClass.className;
 		aClass.className = anotherClass.className;
 		anotherClass.className = tmp;
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicSwapClassNames:with:",{aClass:aClass,anotherClass:anotherClass},globals.ClassBuilder)})},
 args: ["aClass", "anotherClass"],
 source: "basicSwapClassNames: aClass with: anotherClass\x0a\x09<\x0a\x09\x09var tmp = aClass.className;\x0a\x09\x09aClass.className = anotherClass.className;\x0a\x09\x09anotherClass.className = tmp;\x0a\x09>",
 messageSends: [],
@@ -1884,10 +1900,11 @@ selector: "rawRenameClass:to:",
 protocol: 'private',
 fn: function (aClass,aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		globals[aString] = aClass;
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"rawRenameClass:to:",{aClass:aClass,aString:aString},globals.ClassBuilder)})},
 args: ["aClass", "aString"],
 source: "rawRenameClass: aClass to: aString\x0a\x09<\x0a\x09\x09globals[aString] = aClass;\x0a\x09>",
 messageSends: [],
@@ -1925,8 +1942,9 @@ selector: "setupClass:",
 protocol: 'public',
 fn: function (aClass){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 smalltalk.init(aClass);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"setupClass:",{aClass:aClass},globals.ClassBuilder)})},
 args: ["aClass"],
 source: "setupClass: aClass\x0a\x09<smalltalk.init(aClass);>",
 messageSends: [],

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 161 - 80
js/Kernel-Collections.js


+ 14 - 7
js/Kernel-Exceptions.js

@@ -10,8 +10,9 @@ selector: "context",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.context;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"context",{},globals.Error)})},
 args: [],
 source: "context\x0a\x09<return self.context>",
 messageSends: [],
@@ -41,8 +42,9 @@ selector: "isSmalltalkError",
 protocol: 'testing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.smalltalkError === true;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"isSmalltalkError",{},globals.Error)})},
 args: [],
 source: "isSmalltalkError\x0a\x09<return self.smalltalkError === true>",
 messageSends: [],
@@ -56,8 +58,9 @@ selector: "jsStack",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.stack;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"jsStack",{},globals.Error)})},
 args: [],
 source: "jsStack\x0a\x09<return self.stack>",
 messageSends: [],
@@ -103,8 +106,9 @@ selector: "resignal",
 protocol: 'signaling',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 throw(self);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"resignal",{},globals.Error)})},
 args: [],
 source: "resignal\x0a\x09\x22Resignal the receiver without changing its exception context\x22\x0a\x09\x0a\x09<throw(self)>",
 messageSends: [],
@@ -118,8 +122,9 @@ selector: "signal",
 protocol: 'signaling',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"signal",{},globals.Error)})},
 args: [],
 source: "signal\x0a\x09<self.context = smalltalk.getThisContext(); self.smalltalkError = true; throw(self)>",
 messageSends: [],
@@ -205,8 +210,9 @@ selector: "context:",
 protocol: 'accessing',
 fn: function (aMethodContext){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.context = aMethodContext;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"context:",{aMethodContext:aMethodContext},globals.JavaScriptException)})},
 args: ["aMethodContext"],
 source: "context: aMethodContext\x0a\x09\x22Set the context from the outside.\x0a\x09See boot.js `inContext()` exception handling\x22\x0a\x09\x0a\x09<self.context = aMethodContext>",
 messageSends: [],
@@ -252,8 +258,9 @@ selector: "messageText",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return 'JavaScript exception: ' + self["@exception"].toString();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"messageText",{},globals.JavaScriptException)})},
 args: [],
 source: "messageText\x0a\x09<return 'JavaScript exception: ' + self[\x22@exception\x22].toString()>",
 messageSends: [],

+ 62 - 31
js/Kernel-Infrastructure.js

@@ -912,12 +912,13 @@ selector: "addObjectVariablesTo:",
 protocol: 'proxy',
 fn: function (aDictionary){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		for(var i in self['@jsObject']) {
 			aDictionary._at_put_(i, self['@jsObject'][i]);
 		}
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"addObjectVariablesTo:",{aDictionary:aDictionary},globals.JSObjectProxy)})},
 args: ["aDictionary"],
 source: "addObjectVariablesTo: aDictionary\x0a\x09<\x0a\x09\x09for(var i in self['@jsObject']) {\x0a\x09\x09\x09aDictionary._at_put_(i, self['@jsObject'][i]);\x0a\x09\x09}\x0a\x09>",
 messageSends: [],
@@ -948,8 +949,9 @@ selector: "at:",
 protocol: 'accessing',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self['@jsObject'][aString];
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"at:",{aString:aString},globals.JSObjectProxy)})},
 args: ["aString"],
 source: "at: aString\x0a\x09<return self['@jsObject'][aString]>",
 messageSends: [],
@@ -963,11 +965,12 @@ selector: "at:ifAbsent:",
 protocol: 'accessing',
 fn: function (aString,aBlock){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var obj = self['@jsObject'];
 		return aString in obj ? obj[aString] : aBlock._value();
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"at:ifAbsent:",{aString:aString,aBlock:aBlock},globals.JSObjectProxy)})},
 args: ["aString", "aBlock"],
 source: "at: aString ifAbsent: aBlock\x0a\x09\x22return the aString property or evaluate aBlock if the property is not defined on the object\x22\x0a\x09<\x0a\x09\x09var obj = self['@jsObject'];\x0a\x09\x09return aString in obj ? obj[aString] : aBlock._value();\x0a\x09>",
 messageSends: [],
@@ -981,11 +984,12 @@ selector: "at:ifPresent:",
 protocol: 'accessing',
 fn: function (aString,aBlock){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var obj = self['@jsObject'];
 		return aString in obj ? aBlock._value_(obj[aString]) : nil;
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"at:ifPresent:",{aString:aString,aBlock:aBlock},globals.JSObjectProxy)})},
 args: ["aString", "aBlock"],
 source: "at: aString ifPresent: aBlock\x0a\x09\x22return the evaluation of aBlock with the value if the property is defined or return nil\x22\x0a\x09<\x0a\x09\x09var obj = self['@jsObject'];\x0a\x09\x09return aString in obj ? aBlock._value_(obj[aString]) : nil;\x0a\x09>",
 messageSends: [],
@@ -999,11 +1003,12 @@ selector: "at:ifPresent:ifAbsent:",
 protocol: 'accessing',
 fn: function (aString,aBlock,anotherBlock){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var obj = self['@jsObject'];
 		return aString in obj ? aBlock._value_(obj[aString]) : anotherBlock._value();
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"at:ifPresent:ifAbsent:",{aString:aString,aBlock:aBlock,anotherBlock:anotherBlock},globals.JSObjectProxy)})},
 args: ["aString", "aBlock", "anotherBlock"],
 source: "at: aString ifPresent: aBlock ifAbsent: anotherBlock\x0a\x09\x22return the evaluation of aBlock with the value if the property is defined\x0a\x09or return value of anotherBlock\x22\x0a\x09<\x0a\x09\x09var obj = self['@jsObject'];\x0a\x09\x09return aString in obj ? aBlock._value_(obj[aString]) : anotherBlock._value();\x0a\x09>",
 messageSends: [],
@@ -1017,8 +1022,9 @@ selector: "at:put:",
 protocol: 'accessing',
 fn: function (aString,anObject){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self['@jsObject'][aString] = anObject;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"at:put:",{aString:aString,anObject:anObject},globals.JSObjectProxy)})},
 args: ["aString", "anObject"],
 source: "at: aString put: anObject\x0a\x09<return self['@jsObject'][aString] = anObject>",
 messageSends: [],
@@ -1032,8 +1038,9 @@ selector: "compareJSObjectWith:",
 protocol: 'private',
 fn: function (aJSObject){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self["@jsObject"] === aJSObject;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"compareJSObjectWith:",{aJSObject:aJSObject},globals.JSObjectProxy)})},
 args: ["aJSObject"],
 source: " compareJSObjectWith: aJSObject\x0a \x09<return self[\x22@jsObject\x22] === aJSObject>",
 messageSends: [],
@@ -1072,10 +1079,11 @@ selector: "forwardMessage:withArguments:",
 protocol: 'proxy',
 fn: function (aString,anArray){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		return smalltalk.send(self._jsObject(), aString, anArray);
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"forwardMessage:withArguments:",{aString:aString,anArray:anArray},globals.JSObjectProxy)})},
 args: ["aString", "anArray"],
 source: "forwardMessage: aString withArguments: anArray\x0a\x09<\x0a\x09\x09return smalltalk.send(self._jsObject(), aString, anArray);\x0a\x09>",
 messageSends: [],
@@ -1143,13 +1151,14 @@ selector: "keysAndValuesDo:",
 protocol: 'enumerating',
 fn: function (aBlock){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var o = self['@jsObject'];
 		for(var i in o) {
 			aBlock._value_value_(i, o[i]);
 		}
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"keysAndValuesDo:",{aBlock:aBlock},globals.JSObjectProxy)})},
 args: ["aBlock"],
 source: "keysAndValuesDo: aBlock\x0a\x09<\x0a\x09\x09var o = self['@jsObject'];\x0a\x09\x09for(var i in o) {\x0a\x09\x09\x09aBlock._value_value_(i, o[i]);\x0a\x09\x09}\x0a\x09>",
 messageSends: [],
@@ -1163,8 +1172,9 @@ selector: "lookupProperty:",
 protocol: 'accessing',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return aString in self._jsObject() ? aString : nil;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"lookupProperty:",{aString:aString},globals.JSObjectProxy)})},
 args: ["aString"],
 source: "lookupProperty: aString\x0a\x09\x22Looks up a property in JS object.\x0a\x09Answer the property if it is present, or nil if it is not present.\x22\x0a\x09\x0a\x09<return aString in self._jsObject() ? aString : nil>",
 messageSends: [],
@@ -1194,13 +1204,14 @@ selector: "printString",
 protocol: 'printing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var js = self['@jsObject'];
 		return js.toString
 			? js.toString()
 			: Object.prototype.toString.call(js)
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"printString",{},globals.JSObjectProxy)})},
 args: [],
 source: "printString\x0a\x09<\x0a\x09\x09var js = self['@jsObject'];\x0a\x09\x09return js.toString\x0a\x09\x09\x09? js.toString()\x0a\x09\x09\x09: Object.prototype.toString.call(js)\x0a\x09>",
 messageSends: [],
@@ -1277,8 +1288,9 @@ selector: "addElement:",
 protocol: 'accessing',
 fn: function (anObject){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.elements.addElement(anObject);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"addElement:",{anObject:anObject},globals.Organizer)})},
 args: ["anObject"],
 source: "addElement: anObject\x0a\x09<self.elements.addElement(anObject)>",
 messageSends: [],
@@ -1310,8 +1322,9 @@ selector: "removeElement:",
 protocol: 'accessing',
 fn: function (anObject){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.elements.removeElement(anObject);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"removeElement:",{anObject:anObject},globals.Organizer)})},
 args: ["anObject"],
 source: "removeElement: anObject\x0a\x09<self.elements.removeElement(anObject)>",
 messageSends: [],
@@ -1377,8 +1390,9 @@ selector: "theClass",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
  return self.theClass ;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"theClass",{},globals.ClassOrganizer)})},
 args: [],
 source: "theClass\x0a\x09< return self.theClass >",
 messageSends: [],
@@ -1400,8 +1414,9 @@ selector: "basicTransport",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.transport;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicTransport",{},globals.Package)})},
 args: [],
 source: "basicTransport\x0a\x09\x22Answer the transport literal JavaScript object as setup in the JavaScript file, if any\x22\x0a\x09\x0a\x09<return self.transport>",
 messageSends: [],
@@ -1565,8 +1580,9 @@ selector: "name",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.pkgName;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"name",{},globals.Package)})},
 args: [],
 source: "name\x0a\x09<return self.pkgName>",
 messageSends: [],
@@ -1580,8 +1596,9 @@ selector: "name:",
 protocol: 'accessing',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.pkgName = aString;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"name:",{aString:aString},globals.Package)})},
 args: ["aString"],
 source: "name: aString\x0a\x09<self.pkgName = aString>",
 messageSends: [],
@@ -1939,8 +1956,9 @@ selector: "globals",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return (new Function('return this'))();;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"globals",{},globals.PlatformInterface.klass)})},
 args: [],
 source: "globals\x0a\x09<return (new Function('return this'))();>",
 messageSends: [],
@@ -2370,8 +2388,9 @@ selector: "basicCreatePackage:",
 protocol: 'private',
 fn: function (packageName){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return smalltalk.addPackage(packageName);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicCreatePackage:",{packageName:packageName},globals.SmalltalkImage)})},
 args: ["packageName"],
 source: "basicCreatePackage: packageName\x0a\x09\x22Create and bind a new bare package with given name and return it.\x22\x0a\x09<return smalltalk.addPackage(packageName)>",
 messageSends: [],
@@ -2404,8 +2423,9 @@ selector: "classes",
 protocol: 'classes',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return smalltalk.classes();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"classes",{},globals.SmalltalkImage)})},
 args: [],
 source: "classes\x0a\x09<return smalltalk.classes()>",
 messageSends: [],
@@ -2520,8 +2540,9 @@ selector: "deleteClass:",
 protocol: 'private',
 fn: function (aClass){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 smalltalk.removeClass(aClass);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"deleteClass:",{aClass:aClass},globals.SmalltalkImage)})},
 args: ["aClass"],
 source: "deleteClass: aClass\x0a\x09\x22Deletes a class by deleting its binding only. Use #removeClass instead\x22\x0a\x09\x0a\x09<smalltalk.removeClass(aClass)>",
 messageSends: [],
@@ -2553,8 +2574,9 @@ selector: "deletePackage:",
 protocol: 'private',
 fn: function (packageName){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 delete smalltalk.packages[packageName];
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"deletePackage:",{packageName:packageName},globals.SmalltalkImage)})},
 args: ["packageName"],
 source: "deletePackage: packageName\x0a\x09\x22Deletes a package by deleting its binding, but does not check if it contains classes etc.\x0a\x09To remove a package, use #removePackage instead.\x22\x0a\x0a\x09<delete smalltalk.packages[packageName]>",
 messageSends: [],
@@ -2568,8 +2590,9 @@ selector: "globalJsVariables",
 protocol: 'globals',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return smalltalk.globalJsVariables;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"globalJsVariables",{},globals.SmalltalkImage)})},
 args: [],
 source: "globalJsVariables\x0a\x09\x22Array of global JavaScript variables\x22\x0a\x09<return smalltalk.globalJsVariables>",
 messageSends: [],
@@ -2583,8 +2606,9 @@ selector: "globals",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return globals;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"globals",{},globals.SmalltalkImage)})},
 args: [],
 source: "globals\x0a\x09\x22Future compatibility to be able to use Smalltalk globals at: ...\x22\x0a\x09<return globals>",
 messageSends: [],
@@ -2598,8 +2622,9 @@ selector: "includesKey:",
 protocol: 'accessing',
 fn: function (aKey){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return smalltalk.hasOwnProperty(aKey);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"includesKey:",{aKey:aKey},globals.SmalltalkImage)})},
 args: ["aKey"],
 source: "includesKey: aKey\x0a\x09<return smalltalk.hasOwnProperty(aKey)>",
 messageSends: [],
@@ -2613,8 +2638,9 @@ selector: "isSmalltalkObject:",
 protocol: 'testing',
 fn: function (anObject){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return typeof anObject.klass !== 'undefined';
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"isSmalltalkObject:",{anObject:anObject},globals.SmalltalkImage)})},
 args: ["anObject"],
 source: "isSmalltalkObject: anObject\x0a\x09\x22Consider anObject a Smalltalk object if it has a 'klass' property.\x0a\x09Note that this may be unaccurate\x22\x0a\x09\x0a\x09<return typeof anObject.klass !== 'undefined'>",
 messageSends: [],
@@ -2628,8 +2654,9 @@ selector: "packageAt:",
 protocol: 'packages',
 fn: function (packageName){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return smalltalk.packages[packageName];
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"packageAt:",{packageName:packageName},globals.SmalltalkImage)})},
 args: ["packageName"],
 source: "packageAt: packageName\x0a\x09<return smalltalk.packages[packageName]>",
 messageSends: [],
@@ -2662,12 +2689,13 @@ selector: "packages",
 protocol: 'packages',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		return Object.keys(smalltalk.packages).map(function(k) {
 			return smalltalk.packages[k];
 		})
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"packages",{},globals.SmalltalkImage)})},
 args: [],
 source: "packages\x0a\x09\x22Return all Package instances in the system.\x22\x0a\x0a\x09<\x0a\x09\x09return Object.keys(smalltalk.packages).map(function(k) {\x0a\x09\x09\x09return smalltalk.packages[k];\x0a\x09\x09})\x0a\x09>",
 messageSends: [],
@@ -2761,8 +2789,9 @@ selector: "readJSObject:",
 protocol: 'accessing',
 fn: function (anObject){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return smalltalk.readJSObject(anObject);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"readJSObject:",{anObject:anObject},globals.SmalltalkImage)})},
 args: ["anObject"],
 source: "readJSObject: anObject\x0a\x09<return smalltalk.readJSObject(anObject)>",
 messageSends: [],
@@ -2861,8 +2890,9 @@ selector: "reservedWords",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return smalltalk.reservedWords;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"reservedWords",{},globals.SmalltalkImage)})},
 args: [],
 source: "reservedWords\x0a\x09\x22JavaScript reserved words\x22\x0a\x09<return smalltalk.reservedWords>",
 messageSends: [],
@@ -2891,8 +2921,9 @@ selector: "vm",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return smalltalk;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"vm",{},globals.SmalltalkImage)})},
 args: [],
 source: "vm\x0a\x09\x22Future compatibility to be able to use Smalltalk vm ...\x22\x0a\x09<return smalltalk>",
 messageSends: [],

+ 66 - 33
js/Kernel-Methods.js

@@ -10,8 +10,9 @@ selector: "applyTo:arguments:",
 protocol: 'evaluating',
 fn: function (anObject,aCollection){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.apply(anObject, aCollection);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"applyTo:arguments:",{anObject:anObject,aCollection:aCollection},globals.BlockClosure)})},
 args: ["anObject", "aCollection"],
 source: "applyTo: anObject arguments: aCollection\x0a\x09<return self.apply(anObject, aCollection)>",
 messageSends: [],
@@ -25,8 +26,9 @@ selector: "asCompiledMethod:",
 protocol: 'converting',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return smalltalk.method({selector:aString, fn:self});;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"asCompiledMethod:",{aString:aString},globals.BlockClosure)})},
 args: ["aString"],
 source: "asCompiledMethod: aString\x0a\x09<return smalltalk.method({selector:aString, fn:self});>",
 messageSends: [],
@@ -40,8 +42,9 @@ selector: "compiledSource",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.toString();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"compiledSource",{},globals.BlockClosure)})},
 args: [],
 source: "compiledSource\x0a\x09<return self.toString()>",
 messageSends: [],
@@ -55,6 +58,7 @@ selector: "currySelf",
 protocol: 'converting',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		return function () {
 			var args = [ this ];
@@ -62,7 +66,7 @@ var self=this;
 			return self.apply(null, args);
 		}
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"currySelf",{},globals.BlockClosure)})},
 args: [],
 source: "currySelf\x0a\x09\x22Transforms [ :selfarg :x :y | stcode ] block\x0a\x09which represents JS function (selfarg, x, y, ...) {jscode}\x0a\x09into function (x, y, ...) {jscode} that takes selfarg from 'this'.\x0a\x09IOW, it is usable as JS method and first arg takes the receiver.\x22\x0a\x09\x0a\x09<\x0a\x09\x09return function () {\x0a\x09\x09\x09var args = [ this ];\x0a\x09\x09\x09args.push.apply(args, arguments);\x0a\x09\x09\x09return self.apply(null, args);\x0a\x09\x09}\x0a\x09>",
 messageSends: [],
@@ -76,8 +80,9 @@ selector: "ensure:",
 protocol: 'evaluating',
 fn: function (aBlock){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 try{return self._value()}finally{aBlock._value()};
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"ensure:",{aBlock:aBlock},globals.BlockClosure)})},
 args: ["aBlock"],
 source: "ensure: aBlock\x0a\x09<try{return self._value()}finally{aBlock._value()}>",
 messageSends: [],
@@ -108,8 +113,9 @@ selector: "new",
 protocol: 'evaluating',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return new self();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"new",{},globals.BlockClosure)})},
 args: [],
 source: "new\x0a\x09\x22Use the receiver as a JS constructor.\x0a\x09*Do not* use this method to instanciate Smalltalk objects!\x22\x0a\x09<return new self()>",
 messageSends: [],
@@ -177,6 +183,7 @@ selector: "newWithValues:",
 protocol: 'evaluating',
 fn: function (aCollection){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var constructor = function() {};
 		constructor.prototype = self.prototype;
@@ -184,7 +191,7 @@ var self=this;
 		var result = self.apply(object, aCollection);
 		return typeof result === "object" ? result : object;
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"newWithValues:",{aCollection:aCollection},globals.BlockClosure)})},
 args: ["aCollection"],
 source: "newWithValues: aCollection\x0a\x09\x22Use the receiver as a JavaScript constructor with a variable number of arguments.\x0a\x09Answer the object created using the operator `new`.\x0a\x0a\x09This algorithm was inspired by http://stackoverflow.com/a/6069331.\x0a\x0a\x09Here's a general breakdown of what's going on:\x0a\x091) Create a new, empty constructor function.\x0a\x092) Set it's prototype to the receiver's prototype. Because the receiver is a `BlockClosure`, it is also a JavaScript function.\x0a\x093) Instantiate a new object using the constructor function just created. \x0a\x09\x09This forces the interpreter to set the internal [[prototype]] property to what was set on the function before. \x0a   \x09\x09This has to be done, as we have no access to the [[prototype]] property externally.\x0a\x094) Apply `self` to the object I just instantiated.\x22\x0a\x0a\x09<\x0a\x09\x09var constructor = function() {};\x0a\x09\x09constructor.prototype = self.prototype;\x0a\x09\x09var object = new constructor;\x0a\x09\x09var result = self.apply(object, aCollection);\x0a\x09\x09return typeof result === \x22object\x22 ? result : object;\x0a\x09>",
 messageSends: [],
@@ -198,8 +205,9 @@ selector: "numArgs",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.length;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"numArgs",{},globals.BlockClosure)})},
 args: [],
 source: "numArgs\x0a\x09<return self.length>",
 messageSends: [],
@@ -277,8 +285,9 @@ selector: "value",
 protocol: 'evaluating',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self();;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"value",{},globals.BlockClosure)})},
 args: [],
 source: "value\x0a\x09<return self();>",
 messageSends: [],
@@ -292,8 +301,9 @@ selector: "value:",
 protocol: 'evaluating',
 fn: function (anArg){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self(anArg);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"value:",{anArg:anArg},globals.BlockClosure)})},
 args: ["anArg"],
 source: "value: anArg\x0a\x09<return self(anArg);>",
 messageSends: [],
@@ -307,8 +317,9 @@ selector: "value:value:",
 protocol: 'evaluating',
 fn: function (firstArg,secondArg){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self(firstArg, secondArg);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"value:value:",{firstArg:firstArg,secondArg:secondArg},globals.BlockClosure)})},
 args: ["firstArg", "secondArg"],
 source: "value: firstArg value: secondArg\x0a\x09<return self(firstArg, secondArg);>",
 messageSends: [],
@@ -322,8 +333,9 @@ selector: "value:value:value:",
 protocol: 'evaluating',
 fn: function (firstArg,secondArg,thirdArg){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self(firstArg, secondArg, thirdArg);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"value:value:value:",{firstArg:firstArg,secondArg:secondArg,thirdArg:thirdArg},globals.BlockClosure)})},
 args: ["firstArg", "secondArg", "thirdArg"],
 source: "value: firstArg value: secondArg value: thirdArg\x0a\x09<return self(firstArg, secondArg, thirdArg);>",
 messageSends: [],
@@ -337,11 +349,12 @@ selector: "valueWithInterval:",
 protocol: 'timeout/interval',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var interval = setInterval(self, aNumber);
 		return globals.Timeout._on_(interval);
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithInterval:",{aNumber:aNumber},globals.BlockClosure)})},
 args: ["aNumber"],
 source: "valueWithInterval: aNumber\x0a\x09<\x0a\x09\x09var interval = setInterval(self, aNumber);\x0a\x09\x09return globals.Timeout._on_(interval);\x0a\x09>",
 messageSends: [],
@@ -355,8 +368,9 @@ selector: "valueWithPossibleArguments:",
 protocol: 'evaluating',
 fn: function (aCollection){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.apply(null, aCollection);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithPossibleArguments:",{aCollection:aCollection},globals.BlockClosure)})},
 args: ["aCollection"],
 source: "valueWithPossibleArguments: aCollection\x0a\x09<return self.apply(null, aCollection);>",
 messageSends: [],
@@ -370,11 +384,12 @@ selector: "valueWithTimeout:",
 protocol: 'timeout/interval',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var timeout = setTimeout(self, aNumber);
 		return globals.Timeout._on_(timeout);
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"valueWithTimeout:",{aNumber:aNumber},globals.BlockClosure)})},
 args: ["aNumber"],
 source: "valueWithTimeout: aNumber\x0a\x09<\x0a\x09\x09var timeout = setTimeout(self, aNumber);\x0a\x09\x09return globals.Timeout._on_(timeout);\x0a\x09>",
 messageSends: [],
@@ -406,8 +421,9 @@ selector: "whileFalse:",
 protocol: 'controlling',
 fn: function (aBlock){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 while(!smalltalk.assert(self._value())) {aBlock._value()};
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"whileFalse:",{aBlock:aBlock},globals.BlockClosure)})},
 args: ["aBlock"],
 source: "whileFalse: aBlock\x0a\x09<while(!smalltalk.assert(self._value())) {aBlock._value()}>",
 messageSends: [],
@@ -439,8 +455,9 @@ selector: "whileTrue:",
 protocol: 'controlling',
 fn: function (aBlock){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 while(smalltalk.assert(self._value())) {aBlock._value()};
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"whileTrue:",{aBlock:aBlock},globals.BlockClosure)})},
 args: ["aBlock"],
 source: "whileTrue: aBlock\x0a\x09<while(smalltalk.assert(self._value())) {aBlock._value()}>",
 messageSends: [],
@@ -458,8 +475,9 @@ selector: "arguments",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.args || [];
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"arguments",{},globals.CompiledMethod)})},
 args: [],
 source: "arguments\x0a\x09<return self.args || []>",
 messageSends: [],
@@ -1440,8 +1458,9 @@ selector: "evaluatedSelector",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.evaluatedSelector;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"evaluatedSelector",{},globals.MethodContext)})},
 args: [],
 source: "evaluatedSelector\x0a\x09<return self.evaluatedSelector>",
 messageSends: [],
@@ -1455,8 +1474,9 @@ selector: "home",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.homeContext;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"home",{},globals.MethodContext)})},
 args: [],
 source: "home\x0a\x09<return self.homeContext>",
 messageSends: [],
@@ -1470,8 +1490,9 @@ selector: "index",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.index || 0;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"index",{},globals.MethodContext)})},
 args: [],
 source: "index\x0a\x09<return self.index || 0>",
 messageSends: [],
@@ -1503,8 +1524,9 @@ selector: "locals",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.locals || {};
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"locals",{},globals.MethodContext)})},
 args: [],
 source: "locals\x0a\x09<return self.locals || {}>",
 messageSends: [],
@@ -1575,8 +1597,9 @@ selector: "outerContext",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.outerContext || self.homeContext;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"outerContext",{},globals.MethodContext)})},
 args: [],
 source: "outerContext\x0a\x09<return self.outerContext || self.homeContext>",
 messageSends: [],
@@ -1612,8 +1635,9 @@ selector: "receiver",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.receiver;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"receiver",{},globals.MethodContext)})},
 args: [],
 source: "receiver\x0a\x09<return self.receiver>",
 messageSends: [],
@@ -1627,6 +1651,7 @@ selector: "selector",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		if(self.selector) {
 			return smalltalk.convertSelector(self.selector);
@@ -1634,7 +1659,7 @@ var self=this;
 			return nil;
 		}
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"selector",{},globals.MethodContext)})},
 args: [],
 source: "selector\x0a\x09<\x0a\x09\x09if(self.selector) {\x0a\x09\x09\x09return smalltalk.convertSelector(self.selector);\x0a\x09\x09} else {\x0a\x09\x09\x09return nil;\x0a\x09\x09}\x0a\x09>",
 messageSends: [],
@@ -1648,8 +1673,9 @@ selector: "sendIndexAt:",
 protocol: 'accessing',
 fn: function (aSelector){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.sendIdx[aSelector] || 0;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"sendIndexAt:",{aSelector:aSelector},globals.MethodContext)})},
 args: ["aSelector"],
 source: "sendIndexAt: aSelector\x0a\x09<return self.sendIdx[aSelector] || 0>",
 messageSends: [],
@@ -1663,8 +1689,9 @@ selector: "sendIndexes",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.sendIdx;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"sendIndexes",{},globals.MethodContext)})},
 args: [],
 source: "sendIndexes\x0a\x09<return self.sendIdx>",
 messageSends: [],
@@ -1702,11 +1729,12 @@ selector: "constructor:",
 protocol: 'instance creation',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var native=eval(aString);
 		return new native();
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"constructor:",{aString:aString},globals.NativeFunction.klass)})},
 args: ["aString"],
 source: "constructor: aString\x0a\x09<\x0a\x09\x09var native=eval(aString);\x0a\x09\x09return new native();\x0a\x09>",
 messageSends: [],
@@ -1720,11 +1748,12 @@ selector: "constructor:value:",
 protocol: 'instance creation',
 fn: function (aString,anObject){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var native=eval(aString);
 		return new native(anObject);
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:",{aString:aString,anObject:anObject},globals.NativeFunction.klass)})},
 args: ["aString", "anObject"],
 source: "constructor: aString value:anObject\x0a\x09<\x0a\x09\x09var native=eval(aString);\x0a\x09\x09return new native(anObject);\x0a\x09>",
 messageSends: [],
@@ -1738,11 +1767,12 @@ selector: "constructor:value:value:",
 protocol: 'instance creation',
 fn: function (aString,anObject,anObject2){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var native=eval(aString);
 		return new native(anObject,anObject2);
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2},globals.NativeFunction.klass)})},
 args: ["aString", "anObject", "anObject2"],
 source: "constructor: aString value:anObject value: anObject2\x0a\x09<\x0a\x09\x09var native=eval(aString);\x0a\x09\x09return new native(anObject,anObject2);\x0a\x09>",
 messageSends: [],
@@ -1756,11 +1786,12 @@ selector: "constructor:value:value:value:",
 protocol: 'instance creation',
 fn: function (aString,anObject,anObject2,anObject3){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var native=eval(aString);
 		return new native(anObject,anObject2, anObject3);
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"constructor:value:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2,anObject3:anObject3},globals.NativeFunction.klass)})},
 args: ["aString", "anObject", "anObject2", "anObject3"],
 source: "constructor: aString value:anObject value: anObject2 value:anObject3\x0a\x09<\x0a\x09\x09var native=eval(aString);\x0a\x09\x09return new native(anObject,anObject2, anObject3);\x0a\x09>",
 messageSends: [],
@@ -1796,11 +1827,12 @@ selector: "clearInterval",
 protocol: 'timeout/interval',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var interval = self["@rawTimeout"];
 		clearInterval(interval);
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"clearInterval",{},globals.Timeout)})},
 args: [],
 source: "clearInterval\x0a\x09<\x0a\x09\x09var interval = self[\x22@rawTimeout\x22];\x0a\x09\x09clearInterval(interval);\x0a\x09>",
 messageSends: [],
@@ -1814,11 +1846,12 @@ selector: "clearTimeout",
 protocol: 'timeout/interval',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var timeout = self["@rawTimeout"];
 		clearTimeout(timeout);
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"clearTimeout",{},globals.Timeout)})},
 args: [],
 source: "clearTimeout\x0a\x09<\x0a\x09\x09var timeout = self[\x22@rawTimeout\x22];\x0a\x09\x09clearTimeout(timeout);\x0a\x09>",
 messageSends: [],

+ 166 - 83
js/Kernel-Objects.js

@@ -66,8 +66,9 @@ selector: "class",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.klass;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"class",{},globals.ProtoObject)})},
 args: [],
 source: "class\x0a\x09<return self.klass>",
 messageSends: [],
@@ -102,6 +103,7 @@ selector: "identityHash",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var hash=self.identityHash;
 		if (hash) return hash;
@@ -109,7 +111,7 @@ var self=this;
 		Object.defineProperty(self, 'identityHash', {value:hash});
 		return hash;
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"identityHash",{},globals.ProtoObject)})},
 args: [],
 source: "identityHash\x0a\x09<\x0a\x09\x09var hash=self.identityHash;\x0a\x09\x09if (hash) return hash;\x0a\x09\x09hash=smalltalk.nextId();\x0a\x09\x09Object.defineProperty(self, 'identityHash', {value:hash});\x0a\x09\x09return hash;\x0a\x09>",
 messageSends: [],
@@ -168,8 +170,9 @@ selector: "instVarAt:",
 protocol: 'accessing',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
  return self['@'+aString] ;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"instVarAt:",{aString:aString},globals.ProtoObject)})},
 args: ["aString"],
 source: "instVarAt: aString\x0a\x09< return self['@'+aString] >",
 messageSends: [],
@@ -183,8 +186,9 @@ selector: "instVarAt:put:",
 protocol: 'accessing',
 fn: function (aString,anObject){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
  self['@' + aString] = anObject ;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"instVarAt:put:",{aString:aString,anObject:anObject},globals.ProtoObject)})},
 args: ["aString", "anObject"],
 source: "instVarAt: aString put: anObject\x0a\x09< self['@' + aString] = anObject >",
 messageSends: [],
@@ -216,8 +220,9 @@ selector: "perform:withArguments:",
 protocol: 'message handling',
 fn: function (aString,aCollection){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return smalltalk.send(self, aString._asSelector(), aCollection);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"perform:withArguments:",{aString:aString,aCollection:aCollection},globals.ProtoObject)})},
 args: ["aString", "aCollection"],
 source: "perform: aString withArguments: aCollection\x0a\x09<return smalltalk.send(self, aString._asSelector(), aCollection)>",
 messageSends: [],
@@ -449,8 +454,9 @@ selector: "basicAt:",
 protocol: 'accessing',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self[aString];
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicAt:",{aString:aString},globals.Object)})},
 args: ["aString"],
 source: "basicAt: aString\x0a\x09<return self[aString]>",
 messageSends: [],
@@ -464,8 +470,9 @@ selector: "basicAt:put:",
 protocol: 'accessing',
 fn: function (aString,anObject){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self[aString] = anObject;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicAt:put:",{aString:aString,anObject:anObject},globals.Object)})},
 args: ["aString", "anObject"],
 source: "basicAt: aString put: anObject\x0a\x09<return self[aString] = anObject>",
 messageSends: [],
@@ -479,8 +486,9 @@ selector: "basicDelete:",
 protocol: 'accessing',
 fn: function (aString){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 delete self[aString]; return aString;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicDelete:",{aString:aString},globals.Object)})},
 args: ["aString"],
 source: "basicDelete: aString\x0a\x09<delete self[aString]; return aString>",
 messageSends: [],
@@ -512,8 +520,9 @@ selector: "basicPerform:withArguments:",
 protocol: 'message handling',
 fn: function (aString,aCollection){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self[aString].apply(self, aCollection);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"basicPerform:withArguments:",{aString:aString,aCollection:aCollection},globals.Object)})},
 args: ["aString", "aCollection"],
 source: "basicPerform: aString withArguments: aCollection\x0a\x09<return self[aString].apply(self, aCollection);>",
 messageSends: [],
@@ -545,6 +554,7 @@ selector: "deepCopy",
 protocol: 'copying',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var copy = self.klass._new();
 		Object.keys(self).forEach(function (i) {
@@ -554,7 +564,7 @@ var self=this;
 		});
 		return copy;
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"deepCopy",{},globals.Object)})},
 args: [],
 source: "deepCopy\x0a\x09<\x0a\x09\x09var copy = self.klass._new();\x0a\x09\x09Object.keys(self).forEach(function (i) {\x0a\x09\x09if(/^@.+/.test(i)) {\x0a\x09\x09\x09copy[i] = self[i]._deepCopy();\x0a\x09\x09}\x0a\x09\x09});\x0a\x09\x09return copy;\x0a\x09>",
 messageSends: [],
@@ -1014,6 +1024,7 @@ selector: "shallowCopy",
 protocol: 'copying',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		var copy = self.klass._new();
 		Object.keys(self).forEach(function(i) {
@@ -1023,7 +1034,7 @@ var self=this;
 		});
 		return copy;
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"shallowCopy",{},globals.Object)})},
 args: [],
 source: "shallowCopy\x0a\x09<\x0a\x09\x09var copy = self.klass._new();\x0a\x09\x09Object.keys(self).forEach(function(i) {\x0a\x09\x09if(/^@.+/.test(i)) {\x0a\x09\x09\x09copy[i] = self[i];\x0a\x09\x09}\x0a\x09\x09});\x0a\x09\x09return copy;\x0a\x09>",
 messageSends: [],
@@ -1085,8 +1096,9 @@ selector: "throw:",
 protocol: 'error handling',
 fn: function (anObject){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
  throw anObject ;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"throw:",{anObject:anObject},globals.Object)})},
 args: ["anObject"],
 source: "throw: anObject\x0a\x09< throw anObject >",
 messageSends: [],
@@ -1100,8 +1112,9 @@ selector: "try:catch:",
 protocol: 'error handling',
 fn: function (aBlock,anotherBlock){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 try{return aBlock._value()} catch(e) {return anotherBlock._value_(e)};
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"try:catch:",{aBlock:aBlock,anotherBlock:anotherBlock},globals.Object)})},
 args: ["aBlock", "anotherBlock"],
 source: "try: aBlock catch: anotherBlock\x0a\x09<try{return aBlock._value()} catch(e) {return anotherBlock._value_(e)}>",
 messageSends: [],
@@ -1115,8 +1128,9 @@ selector: "value",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.valueOf();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"value",{},globals.Object)})},
 args: [],
 source: "value\x0a\x09<return self.valueOf()>",
 messageSends: [],
@@ -1227,6 +1241,7 @@ selector: "&",
 protocol: 'controlling',
 fn: function (aBoolean){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		if(self == true) {
 		return aBoolean;
@@ -1234,7 +1249,7 @@ var self=this;
 		return false;
 		}
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"&",{aBoolean:aBoolean},globals.Boolean)})},
 args: ["aBoolean"],
 source: "& aBoolean\x0a\x09<\x0a\x09\x09if(self == true) {\x0a\x09\x09return aBoolean;\x0a\x09\x09} else {\x0a\x09\x09return false;\x0a\x09\x09}\x0a\x09>",
 messageSends: [],
@@ -1248,13 +1263,14 @@ selector: "=",
 protocol: 'comparing',
 fn: function (aBoolean){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		return aBoolean != null &&
 			typeof aBoolean._isBoolean === "function" &&
 			aBoolean._isBoolean() &&
 			Boolean(self == true) == aBoolean
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"=",{aBoolean:aBoolean},globals.Boolean)})},
 args: ["aBoolean"],
 source: "= aBoolean\x0a\x09<\x0a\x09\x09return aBoolean != null &&\x0a\x09\x09\x09typeof aBoolean._isBoolean === \x22function\x22 &&\x0a\x09\x09\x09aBoolean._isBoolean() &&\x0a\x09\x09\x09Boolean(self == true) == aBoolean\x0a\x09>",
 messageSends: [],
@@ -1345,8 +1361,9 @@ selector: "asString",
 protocol: 'converting',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
  return self.toString() ;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"asString",{},globals.Boolean)})},
 args: [],
 source: "asString\x0a\x09< return self.toString() >",
 messageSends: [],
@@ -1433,6 +1450,7 @@ selector: "ifTrue:ifFalse:",
 protocol: 'controlling',
 fn: function (aBlock,anotherBlock){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		if(self == true) {
 		return aBlock._value();
@@ -1440,7 +1458,7 @@ var self=this;
 		return anotherBlock._value();
 		}
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"ifTrue:ifFalse:",{aBlock:aBlock,anotherBlock:anotherBlock},globals.Boolean)})},
 args: ["aBlock", "anotherBlock"],
 source: "ifTrue: aBlock ifFalse: anotherBlock\x0a\x09\x22inlined in the Compiler\x22\x0a\x09<\x0a\x09\x09if(self == true) {\x0a\x09\x09return aBlock._value();\x0a\x09\x09} else {\x0a\x09\x09return anotherBlock._value();\x0a\x09\x09}\x0a\x09>",
 messageSends: [],
@@ -1555,6 +1573,7 @@ selector: "|",
 protocol: 'controlling',
 fn: function (aBoolean){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		if(self == true) {
 		return true;
@@ -1562,7 +1581,7 @@ var self=this;
 		return aBoolean;
 		}
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"|",{aBoolean:aBoolean},globals.Boolean)})},
 args: ["aBoolean"],
 source: "| aBoolean\x0a\x09<\x0a\x09\x09if(self == true) {\x0a\x09\x09return true;\x0a\x09\x09} else {\x0a\x09\x09return aBoolean;\x0a\x09\x09}\x0a\x09>",
 messageSends: [],
@@ -1580,8 +1599,9 @@ selector: "+",
 protocol: 'arithmetic',
 fn: function (aDate){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self + aDate;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"+",{aDate:aDate},globals.Date)})},
 args: ["aDate"],
 source: "+ aDate\x0a\x09<return self + aDate>",
 messageSends: [],
@@ -1595,8 +1615,9 @@ selector: "-",
 protocol: 'arithmetic',
 fn: function (aDate){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self - aDate;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"-",{aDate:aDate},globals.Date)})},
 args: ["aDate"],
 source: "- aDate\x0a\x09<return self - aDate>",
 messageSends: [],
@@ -1610,8 +1631,9 @@ selector: "<",
 protocol: 'comparing',
 fn: function (aDate){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self < aDate;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"<",{aDate:aDate},globals.Date)})},
 args: ["aDate"],
 source: "< aDate\x0a\x09<return self < aDate>",
 messageSends: [],
@@ -1625,8 +1647,9 @@ selector: "<=",
 protocol: 'comparing',
 fn: function (aDate){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self <= aDate;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"<=",{aDate:aDate},globals.Date)})},
 args: ["aDate"],
 source: "<= aDate\x0a\x09<return self <= aDate>",
 messageSends: [],
@@ -1640,8 +1663,9 @@ selector: ">",
 protocol: 'comparing',
 fn: function (aDate){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self > aDate;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,">",{aDate:aDate},globals.Date)})},
 args: ["aDate"],
 source: "> aDate\x0a\x09<return self >> aDate>",
 messageSends: [],
@@ -1655,8 +1679,9 @@ selector: ">=",
 protocol: 'comparing',
 fn: function (aDate){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self >= aDate;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,">=",{aDate:aDate},globals.Date)})},
 args: ["aDate"],
 source: ">= aDate\x0a\x09<return self >>= aDate>",
 messageSends: [],
@@ -1670,8 +1695,9 @@ selector: "asDateString",
 protocol: 'converting',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.toDateString();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"asDateString",{},globals.Date)})},
 args: [],
 source: "asDateString\x0a\x09<return self.toDateString()>",
 messageSends: [],
@@ -1685,8 +1711,9 @@ selector: "asLocaleString",
 protocol: 'converting',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.toLocaleString();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"asLocaleString",{},globals.Date)})},
 args: [],
 source: "asLocaleString\x0a\x09<return self.toLocaleString()>",
 messageSends: [],
@@ -1736,8 +1763,9 @@ selector: "asString",
 protocol: 'converting',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.toString();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"asString",{},globals.Date)})},
 args: [],
 source: "asString\x0a\x09<return self.toString()>",
 messageSends: [],
@@ -1751,8 +1779,9 @@ selector: "asTimeString",
 protocol: 'converting',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.toTimeString();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"asTimeString",{},globals.Date)})},
 args: [],
 source: "asTimeString\x0a\x09<return self.toTimeString()>",
 messageSends: [],
@@ -1800,8 +1829,9 @@ selector: "dayOfMonth",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.getDate();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"dayOfMonth",{},globals.Date)})},
 args: [],
 source: "dayOfMonth\x0a\x09<return self.getDate()>",
 messageSends: [],
@@ -1815,8 +1845,9 @@ selector: "dayOfMonth:",
 protocol: 'accessing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.setDate(aNumber);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"dayOfMonth:",{aNumber:aNumber},globals.Date)})},
 args: ["aNumber"],
 source: "dayOfMonth: aNumber\x0a\x09<self.setDate(aNumber)>",
 messageSends: [],
@@ -1830,8 +1861,9 @@ selector: "dayOfWeek",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.getDay() + 1;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"dayOfWeek",{},globals.Date)})},
 args: [],
 source: "dayOfWeek\x0a\x09<return self.getDay() + 1>",
 messageSends: [],
@@ -1845,8 +1877,9 @@ selector: "dayOfWeek:",
 protocol: 'accessing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.setDay(aNumber - 1);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"dayOfWeek:",{aNumber:aNumber},globals.Date)})},
 args: ["aNumber"],
 source: "dayOfWeek: aNumber\x0a\x09<return self.setDay(aNumber - 1)>",
 messageSends: [],
@@ -1860,8 +1893,9 @@ selector: "hours",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.getHours();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"hours",{},globals.Date)})},
 args: [],
 source: "hours\x0a\x09<return self.getHours()>",
 messageSends: [],
@@ -1875,8 +1909,9 @@ selector: "hours:",
 protocol: 'accessing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.setHours(aNumber);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"hours:",{aNumber:aNumber},globals.Date)})},
 args: ["aNumber"],
 source: "hours: aNumber\x0a\x09<self.setHours(aNumber)>",
 messageSends: [],
@@ -1890,8 +1925,9 @@ selector: "milliseconds",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.getMilliseconds();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"milliseconds",{},globals.Date)})},
 args: [],
 source: "milliseconds\x0a\x09<return self.getMilliseconds()>",
 messageSends: [],
@@ -1905,8 +1941,9 @@ selector: "milliseconds:",
 protocol: 'accessing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.setMilliseconds(aNumber);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"milliseconds:",{aNumber:aNumber},globals.Date)})},
 args: ["aNumber"],
 source: "milliseconds: aNumber\x0a\x09<self.setMilliseconds(aNumber)>",
 messageSends: [],
@@ -1920,8 +1957,9 @@ selector: "minutes",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.getMinutes();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"minutes",{},globals.Date)})},
 args: [],
 source: "minutes\x0a\x09<return self.getMinutes()>",
 messageSends: [],
@@ -1935,8 +1973,9 @@ selector: "minutes:",
 protocol: 'accessing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.setMinutes(aNumber);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"minutes:",{aNumber:aNumber},globals.Date)})},
 args: ["aNumber"],
 source: "minutes: aNumber\x0a\x09<self.setMinutes(aNumber)>",
 messageSends: [],
@@ -1950,8 +1989,9 @@ selector: "month",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.getMonth() + 1;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"month",{},globals.Date)})},
 args: [],
 source: "month\x0a\x09<return self.getMonth() + 1>",
 messageSends: [],
@@ -1965,8 +2005,9 @@ selector: "month:",
 protocol: 'accessing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.setMonth(aNumber - 1);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"month:",{aNumber:aNumber},globals.Date)})},
 args: ["aNumber"],
 source: "month: aNumber\x0a\x09<self.setMonth(aNumber - 1)>",
 messageSends: [],
@@ -1996,8 +2037,9 @@ selector: "seconds",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.getSeconds();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"seconds",{},globals.Date)})},
 args: [],
 source: "seconds\x0a\x09<return self.getSeconds()>",
 messageSends: [],
@@ -2011,8 +2053,9 @@ selector: "seconds:",
 protocol: 'accessing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.setSeconds(aNumber);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"seconds:",{aNumber:aNumber},globals.Date)})},
 args: ["aNumber"],
 source: "seconds: aNumber\x0a\x09<self.setSeconds(aNumber)>",
 messageSends: [],
@@ -2026,8 +2069,9 @@ selector: "time",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.getTime();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"time",{},globals.Date)})},
 args: [],
 source: "time\x0a\x09<return self.getTime()>",
 messageSends: [],
@@ -2041,8 +2085,9 @@ selector: "time:",
 protocol: 'accessing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.setTime(aNumber);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"time:",{aNumber:aNumber},globals.Date)})},
 args: ["aNumber"],
 source: "time: aNumber\x0a\x09<self.setTime(aNumber)>",
 messageSends: [],
@@ -2056,8 +2101,9 @@ selector: "year",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.getFullYear();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"year",{},globals.Date)})},
 args: [],
 source: "year\x0a\x09<return self.getFullYear()>",
 messageSends: [],
@@ -2071,8 +2117,9 @@ selector: "year:",
 protocol: 'accessing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 self.setFullYear(aNumber);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"year:",{aNumber:aNumber},globals.Date)})},
 args: ["aNumber"],
 source: "year: aNumber\x0a\x09<self.setFullYear(aNumber)>",
 messageSends: [],
@@ -2179,8 +2226,9 @@ selector: "new:",
 protocol: 'instance creation',
 fn: function (anObject){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return new Date(anObject);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"new:",{anObject:anObject},globals.Date.klass)})},
 args: ["anObject"],
 source: "new: anObject\x0a\x09<return new Date(anObject)>",
 messageSends: [],
@@ -2233,8 +2281,9 @@ selector: "&",
 protocol: 'converting',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self & aNumber;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"&",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "& aNumber\x0a\x09<return self & aNumber>",
 messageSends: [],
@@ -2248,8 +2297,9 @@ selector: "*",
 protocol: 'arithmetic',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self * aNumber;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"*",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "* aNumber\x0a\x09\x22Inlined in the Compiler\x22\x0a\x09<return self * aNumber>",
 messageSends: [],
@@ -2281,8 +2331,9 @@ selector: "+",
 protocol: 'arithmetic',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self + aNumber;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"+",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "+ aNumber\x0a\x09\x22Inlined in the Compiler\x22\x0a\x09<return self + aNumber>",
 messageSends: [],
@@ -2296,8 +2347,9 @@ selector: "-",
 protocol: 'arithmetic',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self - aNumber;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"-",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "- aNumber\x0a\x09\x22Inlined in the Compiler\x22\x0a\x09<return self - aNumber>",
 messageSends: [],
@@ -2311,8 +2363,9 @@ selector: "/",
 protocol: 'arithmetic',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self / aNumber;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"/",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "/ aNumber\x0a\x09\x22Inlined in the Compiler\x22\x0a\x09<return self / aNumber>",
 messageSends: [],
@@ -2344,8 +2397,9 @@ selector: "<",
 protocol: 'comparing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self < aNumber;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"<",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "< aNumber\x0a\x09\x22Inlined in the Compiler\x22\x0a\x09<return self < aNumber>",
 messageSends: [],
@@ -2359,8 +2413,9 @@ selector: "<=",
 protocol: 'comparing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self <= aNumber;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"<=",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "<= aNumber\x0a\x09\x22Inlined in the Compiler\x22\x0a\x09<return self <= aNumber>",
 messageSends: [],
@@ -2374,13 +2429,14 @@ selector: "=",
 protocol: 'comparing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		return aNumber != null &&
 			typeof aNumber._isNumber === "function" &&
 			aNumber._isNumber() &&
 			Number(self) == aNumber
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"=",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "= aNumber\x0a\x09<\x0a\x09\x09return aNumber != null &&\x0a\x09\x09\x09typeof aNumber._isNumber === \x22function\x22 &&\x0a\x09\x09\x09aNumber._isNumber() &&\x0a\x09\x09\x09Number(self) == aNumber\x0a\x09>",
 messageSends: [],
@@ -2394,8 +2450,9 @@ selector: ">",
 protocol: 'comparing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self > aNumber;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,">",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "> aNumber\x0a\x09\x22Inlined in the Compiler\x22\x0a\x09<return self >> aNumber>",
 messageSends: [],
@@ -2409,8 +2466,9 @@ selector: ">=",
 protocol: 'comparing',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self >= aNumber;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,">=",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: ">= aNumber\x0a\x09\x22Inlined in the Compiler\x22\x0a\x09<return self >>= aNumber>",
 messageSends: [],
@@ -2443,8 +2501,9 @@ selector: "\x5c\x5c",
 protocol: 'arithmetic',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self % aNumber;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"\x5c\x5c",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "\x5c\x5c aNumber\x0a\x09<return self % aNumber>",
 messageSends: [],
@@ -2458,8 +2517,9 @@ selector: "abs",
 protocol: 'arithmetic',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.abs(self);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"abs",{},globals.Number)})},
 args: [],
 source: "abs\x0a\x09<return Math.abs(self);>",
 messageSends: [],
@@ -2473,8 +2533,9 @@ selector: "arcCos",
 protocol: 'mathematical functions',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.acos(self);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"arcCos",{},globals.Number)})},
 args: [],
 source: "arcCos\x0a\x09<return Math.acos(self);>",
 messageSends: [],
@@ -2488,8 +2549,9 @@ selector: "arcSin",
 protocol: 'mathematical functions',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.asin(self);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"arcSin",{},globals.Number)})},
 args: [],
 source: "arcSin\x0a\x09<return Math.asin(self);>",
 messageSends: [],
@@ -2503,8 +2565,9 @@ selector: "arcTan",
 protocol: 'mathematical functions',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.atan(self);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"arcTan",{},globals.Number)})},
 args: [],
 source: "arcTan\x0a\x09<return Math.atan(self);>",
 messageSends: [],
@@ -2586,8 +2649,9 @@ selector: "asString",
 protocol: 'converting',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
  return String(self) ;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"asString",{},globals.Number)})},
 args: [],
 source: "asString\x0a\x09< return String(self) >",
 messageSends: [],
@@ -2620,8 +2684,9 @@ selector: "ceiling",
 protocol: 'converting',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.ceil(self);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"ceiling",{},globals.Number)})},
 args: [],
 source: "ceiling\x0a\x09<return Math.ceil(self);>",
 messageSends: [],
@@ -2650,8 +2715,9 @@ selector: "cos",
 protocol: 'mathematical functions',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.cos(self);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"cos",{},globals.Number)})},
 args: [],
 source: "cos\x0a\x09<return Math.cos(self);>",
 messageSends: [],
@@ -2701,8 +2767,9 @@ selector: "floor",
 protocol: 'converting',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.floor(self);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"floor",{},globals.Number)})},
 args: [],
 source: "floor\x0a\x09<return Math.floor(self);>",
 messageSends: [],
@@ -2782,8 +2849,9 @@ selector: "ln",
 protocol: 'mathematical functions',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.log(self);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"ln",{},globals.Number)})},
 args: [],
 source: "ln\x0a\x09<return Math.log(self);>",
 messageSends: [],
@@ -2797,8 +2865,9 @@ selector: "log",
 protocol: 'mathematical functions',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.log(self) / Math.LN10;;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"log",{},globals.Number)})},
 args: [],
 source: "log\x0a\x09<return Math.log(self) / Math.LN10;>",
 messageSends: [],
@@ -2812,8 +2881,9 @@ selector: "log:",
 protocol: 'mathematical functions',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.log(self) / Math.log(aNumber);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"log:",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "log: aNumber\x0a\x09<return Math.log(self) / Math.log(aNumber);>",
 messageSends: [],
@@ -2827,8 +2897,9 @@ selector: "max:",
 protocol: 'arithmetic',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.max(self, aNumber);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"max:",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "max: aNumber\x0a\x09<return Math.max(self, aNumber);>",
 messageSends: [],
@@ -2842,8 +2913,9 @@ selector: "min:",
 protocol: 'arithmetic',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.min(self, aNumber);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"min:",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "min: aNumber\x0a\x09<return Math.min(self, aNumber);>",
 messageSends: [],
@@ -2945,8 +3017,9 @@ selector: "printShowingDecimalPlaces:",
 protocol: 'printing',
 fn: function (placesDesired){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self.toFixed(placesDesired);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"printShowingDecimalPlaces:",{placesDesired:placesDesired},globals.Number)})},
 args: ["placesDesired"],
 source: "printShowingDecimalPlaces: placesDesired\x0a\x09<return self.toFixed(placesDesired)>",
 messageSends: [],
@@ -2960,8 +3033,9 @@ selector: "raisedTo:",
 protocol: 'mathematical functions',
 fn: function (exponent){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.pow(self, exponent);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"raisedTo:",{exponent:exponent},globals.Number)})},
 args: ["exponent"],
 source: "raisedTo: exponent\x0a\x09<return Math.pow(self, exponent);>",
 messageSends: [],
@@ -2975,8 +3049,9 @@ selector: "rounded",
 protocol: 'converting',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.round(self);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"rounded",{},globals.Number)})},
 args: [],
 source: "rounded\x0a\x09<return Math.round(self);>",
 messageSends: [],
@@ -3016,8 +3091,9 @@ selector: "sin",
 protocol: 'mathematical functions',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.sin(self);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"sin",{},globals.Number)})},
 args: [],
 source: "sin\x0a\x09<return Math.sin(self);>",
 messageSends: [],
@@ -3031,8 +3107,9 @@ selector: "sqrt",
 protocol: 'mathematical functions',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.sqrt(self);
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"sqrt",{},globals.Number)})},
 args: [],
 source: "sqrt\x0a\x09<return Math.sqrt(self)>",
 messageSends: [],
@@ -3064,8 +3141,9 @@ selector: "tan",
 protocol: 'mathematical functions',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.tan(self);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"tan",{},globals.Number)})},
 args: [],
 source: "tan\x0a\x09<return Math.tan(self);>",
 messageSends: [],
@@ -3271,6 +3349,7 @@ selector: "truncated",
 protocol: 'converting',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 		if(self >= 0) {
 			return Math.floor(self);
@@ -3278,7 +3357,7 @@ var self=this;
 			return Math.floor(self * (-1)) * (-1);
 		};
 	;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"truncated",{},globals.Number)})},
 args: [],
 source: "truncated\x0a\x09<\x0a\x09\x09if(self >>= 0) {\x0a\x09\x09\x09return Math.floor(self);\x0a\x09\x09} else {\x0a\x09\x09\x09return Math.floor(self * (-1)) * (-1);\x0a\x09\x09};\x0a\x09>",
 messageSends: [],
@@ -3292,8 +3371,9 @@ selector: "|",
 protocol: 'converting',
 fn: function (aNumber){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return self | aNumber;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"|",{aNumber:aNumber},globals.Number)})},
 args: ["aNumber"],
 source: "| aNumber\x0a\x09<return self | aNumber>",
 messageSends: [],
@@ -3308,8 +3388,9 @@ selector: "e",
 protocol: 'instance creation',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.E;;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"e",{},globals.Number.klass)})},
 args: [],
 source: "e\x0a\x09<return Math.E;>",
 messageSends: [],
@@ -3338,8 +3419,9 @@ selector: "pi",
 protocol: 'instance creation',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.PI;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"pi",{},globals.Number.klass)})},
 args: [],
 source: "pi\x0a\x09<return Math.PI>",
 messageSends: [],
@@ -3671,8 +3753,9 @@ selector: "next",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return Math.random();
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"next",{},globals.Random)})},
 args: [],
 source: "next\x0a\x09<return Math.random()>",
 messageSends: [],

+ 8 - 4
js/Kernel-Tests.js

@@ -297,6 +297,7 @@ selector: "testNewWithValues",
 protocol: 'tests',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 
 	function theTestPrototype() {this.name = "theTestPrototype";}
 	function theTestConstructor(arg1, arg2, arg3) {}
@@ -309,7 +310,7 @@ var self=this;
 	"newWithValues: cannot help if the argument list is wrong, and should warn that a mistake was made."
 	function constructionShouldFail() {var anotherResult = theWrappedConstructor._newWithValues_('This is so wrong');}
 	self._should_raise_(_st(constructionShouldFail), globals.Error);;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"testNewWithValues",{},globals.BlockClosureTest)})},
 args: [],
 source: "testNewWithValues\x0a<\x0a\x09function theTestPrototype() {this.name = \x22theTestPrototype\x22;}\x0a\x09function theTestConstructor(arg1, arg2, arg3) {}\x0a\x09theTestConstructor.prototype = new theTestPrototype;\x0a\x0a\x09var theWrappedConstructor = _st(theTestConstructor);\x0a\x09var theResult = theWrappedConstructor._newWithValues_([1, 2, 3 ]);\x0a\x09self._assert_equals_(Object.getPrototypeOf(theResult).name, 'theTestPrototype');\x0a\x0a\x09\x22newWithValues: cannot help if the argument list is wrong, and should warn that a mistake was made.\x22\x0a\x09function constructionShouldFail() {var anotherResult = theWrappedConstructor._newWithValues_('This is so wrong');}\x0a\x09self._should_raise_(_st(constructionShouldFail), globals.Error);\x0a>",
 messageSends: [],
@@ -5785,8 +5786,9 @@ selector: "jsObject",
 protocol: 'accessing',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return jsObject = {a: 1, b: function() {return 2;}, c: function(object) {return object;}, d: '', 'e': null, 'f': void 0};
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"jsObject",{},globals.JSObjectProxyTest)})},
 args: [],
 source: "jsObject\x0a\x09<return jsObject = {a: 1, b: function() {return 2;}, c: function(object) {return object;}, d: '', 'e': null, 'f': void 0}>",
 messageSends: [],
@@ -6224,8 +6226,9 @@ selector: "throwException",
 protocol: 'helpers',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 throw 'test';
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"throwException",{},globals.JavaScriptExceptionTest)})},
 args: [],
 source: "throwException\x0a\x09<throw 'test'>",
 messageSends: [],
@@ -7713,8 +7716,9 @@ selector: "notDefined",
 protocol: 'tests',
 fn: function (){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 return void 0;;
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"notDefined",{},globals.ObjectTest)})},
 args: [],
 source: "notDefined\x0a\x09<return void 0;>",
 messageSends: [],

+ 2 - 1
js/Kernel-Transcript.js

@@ -52,8 +52,9 @@ selector: "show:",
 protocol: 'printing',
 fn: function (anObject){
 var self=this;
+return smalltalk.withContext(function($ctx1) { 
 console.log(String(_st(anObject)._asString()));
-return self},
+return self}, function($ctx1) {$ctx1.fill(self,"show:",{anObject:anObject},globals.ConsoleTranscript)})},
 args: ["anObject"],
 source: "show: anObject\x0a\x22Smalltalk objects should have no trouble displaying themselves on the Transcript; Javascript objects don't know how, so must be wrapped in a JSObectProxy.\x22\x0a<console.log(String(_st(anObject)._asString()))>",
 messageSends: [],

+ 17 - 17
st/IDE.st

@@ -2343,23 +2343,6 @@ inspectOn: anInspector
 	anInspector setLabel: label
 ! !
 
-!MethodContext methodsFor: '*IDE'!
-
-inspectOn: anInspector
-	| variables |
-	variables := Dictionary new.
-	variables at: '#self' put: self.
-	variables at: '#home' put: self home.
-	variables at: '#receiver' put: self receiver.
-	variables at: '#selector' put: self selector.
-	variables at: '#temps' put: self temps.
-	self class instanceVariableNames do: [ :each |
-		variables at: each put: (self instVarAt: each) ].
-	anInspector
-		setLabel: self printString;
-		setVariables: variables
-! !
-
 !AssociativeCollection methodsFor: '*IDE'!
 
 inspectOn: anInspector
@@ -2389,3 +2372,20 @@ inspectOn: anInspector
 		setVariables: variables
 ! !
 
+!MethodContext methodsFor: '*IDE'!
+
+inspectOn: anInspector
+	| variables |
+	variables := Dictionary new.
+	variables at: '#self' put: self.
+	variables at: '#home' put: self home.
+	variables at: '#receiver' put: self receiver.
+	variables at: '#selector' put: self selector.
+	variables at: '#temps' put: self temps.
+	self class instanceVariableNames do: [ :each |
+		variables at: each put: (self instVarAt: each) ].
+	anInspector
+		setLabel: self printString;
+		setVariables: variables
+! !
+

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů