Browse Source

Recompile (while version set to 0.16.1)

Herbert Vojčík 7 years ago
parent
commit
651d4a3529
1 changed files with 593 additions and 88 deletions
  1. 593 88
      external/amber-cli/support/amber-cli.js

+ 593 - 88
external/amber-cli/support/amber-cli.js

@@ -1,6 +1,7 @@
 #!/usr/bin/env node
 (function(define, require){
 define('__wrap__', function (requirejs) {
+var module = null; // Bad UMDs workaround
 requirejs.resolve = require.resolve;
 require = requirejs;
 // This file is used to make additional changes
@@ -15,6 +16,8 @@ define("config-node", function(){});
 
 define('amber/brikz',[], function () {
     return function Brikz(api, apiKey, initKey) {
+        "use strict";
+
         //jshint eqnull:true
 
         var brikz = this,
@@ -1292,6 +1295,7 @@ define("amber/node-compatibility", ["./es2015-polyfills"], function(){});
 //jshint eqnull:true
 
 define('amber/boot',['require', './brikz', './compatibility'], function (require, Brikz) {
+    "use strict";
 
     function inherits(child, parent) {
         child.prototype = Object.create(parent.prototype, {
@@ -1347,7 +1351,8 @@ define('amber/boot',['require', './brikz', './compatibility'], function (require
         });
 
         // Hidden root class of the system.
-        this.rootAsClass = {fn: SmalltalkRoot};
+        // Effective superclass of all classes created with `nil subclass: ...`.
+        this.nilAsClass = {fn: SmalltalkRoot};
 
         this.__init__ = function () {
             var globals = brikz.smalltalkGlobals.globals;
@@ -1488,9 +1493,9 @@ define('amber/boot',['require', './brikz', './compatibility'], function (require
         var addOrganizationElement = brikz.organize.addOrganizationElement;
         var removeOrganizationElement = brikz.organize.removeOrganizationElement;
         var globals = brikz.smalltalkGlobals.globals;
-        var rootAsClass = brikz.root.rootAsClass;
+        var nilAsClass = brikz.root.nilAsClass;
         var SmalltalkObject = brikz.root.Object;
-        rootAsClass.klass = {fn: SmalltalkClass};
+        nilAsClass.klass = {fn: SmalltalkClass};
 
         function SmalltalkBehavior() {
         }
@@ -1520,7 +1525,7 @@ define('amber/boot',['require', './brikz', './compatibility'], function (require
             addCoupledClass("Class", globals.Behavior, "Kernel-Classes", SmalltalkClass);
 
             // Manually bootstrap the metaclass hierarchy
-            globals.ProtoObject.klass.superclass = rootAsClass.klass = globals.Class;
+            globals.ProtoObject.klass.superclass = nilAsClass.klass = globals.Class;
             addSubclass(globals.ProtoObject.klass);
         };
         this.__init__.once = true;
@@ -1537,7 +1542,7 @@ define('amber/boot',['require', './brikz', './compatibility'], function (require
         function klass(spec) {
             var setSuperClass = spec.superclass;
             if (!spec.superclass) {
-                spec.superclass = rootAsClass;
+                spec.superclass = nilAsClass;
             }
 
             var meta = metaclass(spec);
@@ -1952,7 +1957,8 @@ define('amber/boot',['require', './brikz', './compatibility'], function (require
     return {
         api: api,
         nil: brikz.root.nil,
-        dnu: brikz.root.rootAsClass,
+        dnu/* TODO deprecate */: brikz.root.nilAsClass,
+        nilAsClass: brikz.root.nilAsClass,
         globals: brikz.smalltalkGlobals.globals,
         asReceiver: brikz.asReceiver.asReceiver
     };
@@ -9751,7 +9757,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.ForkPool.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.ForkPool.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@poolSize"]=(0);
 self["@queue"]=$recv($globals.Queue)._new();
@@ -9953,7 +9959,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.Message.superclass||$boot.dnu).fn.prototype._printOn_.apply($recv(self), [aStream]));
+($globals.Message.superclass||$boot.nilAsClass).fn.prototype._printOn_.apply($recv(self), [aStream]));
 $ctx1.supercall = false;
 $recv(aStream)._nextPutAll_("(");
 $ctx1.sendIdx["nextPutAll:"]=1;
@@ -10089,7 +10095,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.MessageSend.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.MessageSend.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@message"]=$recv($globals.Message)._new();
 return self;
@@ -10111,7 +10117,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.MessageSend.superclass||$boot.dnu).fn.prototype._printOn_.apply($recv(self), [aStream]));
+($globals.MessageSend.superclass||$boot.nilAsClass).fn.prototype._printOn_.apply($recv(self), [aStream]));
 $ctx1.supercall = false;
 $recv(aStream)._nextPutAll_("(");
 $ctx1.sendIdx["nextPutAll:"]=1;
@@ -10609,7 +10615,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.MethodContext.superclass||$boot.dnu).fn.prototype._printOn_.apply($recv(self), [aStream]));
+($globals.MethodContext.superclass||$boot.nilAsClass).fn.prototype._printOn_.apply($recv(self), [aStream]));
 $ctx1.supercall = false;
 $recv(aStream)._nextPutAll_("(");
 $ctx1.sendIdx["nextPutAll:"]=1;
@@ -11628,7 +11634,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.BucketStore.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.BucketStore.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self._removeAll();
 return self;
@@ -12996,7 +13002,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.AssociativeCollection.superclass||$boot.dnu).fn.prototype._addAll_.apply($recv(self), [$recv(anAssociativeCollection)._associations()]));
+($globals.AssociativeCollection.superclass||$boot.nilAsClass).fn.prototype._addAll_.apply($recv(self), [$recv(anAssociativeCollection)._associations()]));
 $ctx1.supercall = false;
 return anAssociativeCollection;
 }, function($ctx1) {$ctx1.fill(self,"addAll:",{anAssociativeCollection:anAssociativeCollection},$globals.AssociativeCollection)});
@@ -13379,7 +13385,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.AssociativeCollection.superclass||$boot.dnu).fn.prototype._printOn_.apply($recv(self), [aStream]));
+($globals.AssociativeCollection.superclass||$boot.nilAsClass).fn.prototype._printOn_.apply($recv(self), [aStream]));
 $ctx1.supercall = false;
 $ctx1.sendIdx["printOn:"]=1;
 $recv(aStream)._nextPutAll_(" (");
@@ -13787,7 +13793,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.Dictionary.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.Dictionary.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@keys"]=[];
 self["@values"]=[];
@@ -15036,7 +15042,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.Array.superclass||$boot.dnu).fn.prototype._printOn_.apply($recv(self), [aStream]));
+($globals.Array.superclass||$boot.nilAsClass).fn.prototype._printOn_.apply($recv(self), [aStream]));
 $ctx1.supercall = false;
 $ctx1.sendIdx["printOn:"]=1;
 $recv(aStream)._nextPutAll_(" (");
@@ -17394,7 +17400,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.Set.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.Set.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@defaultBucket"]=[];
 self._initializeSlowBucketStores();
@@ -17465,7 +17471,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.Set.superclass||$boot.dnu).fn.prototype._printOn_.apply($recv(self), [aStream]));
+($globals.Set.superclass||$boot.nilAsClass).fn.prototype._printOn_.apply($recv(self), [aStream]));
 $ctx1.supercall = false;
 $ctx1.sendIdx["printOn:"]=1;
 $recv(aStream)._nextPutAll_(" (");
@@ -18627,7 +18633,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.Queue.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.Queue.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@read"]=$recv($globals.OrderedCollection)._new();
 $ctx1.sendIdx["new"]=1;
@@ -19612,7 +19618,7 @@ $1=$recv($globals.JSObjectProxy)._lookupProperty_ofProxy_($recv($recv(aMessage).
 if(($receiver = $1) == null || $receiver.isNil){
 return (
 $ctx1.supercall = true,
-($globals.JSObjectProxy.superclass||$boot.dnu).fn.prototype._doesNotUnderstand_.apply($recv(self), [aMessage]));
+($globals.JSObjectProxy.superclass||$boot.nilAsClass).fn.prototype._doesNotUnderstand_.apply($recv(self), [aMessage]));
 $ctx1.supercall = false;
 } else {
 var jsSelector;
@@ -19933,7 +19939,7 @@ return $core.withContext(function($ctx1) {
 var $1,$3,$2;
 (
 $ctx1.supercall = true,
-($globals.ClassOrganizer.superclass||$boot.dnu).fn.prototype._addElement_.apply($recv(self), [aString]));
+($globals.ClassOrganizer.superclass||$boot.nilAsClass).fn.prototype._addElement_.apply($recv(self), [aString]));
 $ctx1.supercall = false;
 $1=$recv($globals.SystemAnnouncer)._current();
 $3=$recv($globals.ProtocolAdded)._new();
@@ -19961,7 +19967,7 @@ return $core.withContext(function($ctx1) {
 var $1,$3,$2;
 (
 $ctx1.supercall = true,
-($globals.ClassOrganizer.superclass||$boot.dnu).fn.prototype._removeElement_.apply($recv(self), [aString]));
+($globals.ClassOrganizer.superclass||$boot.nilAsClass).fn.prototype._removeElement_.apply($recv(self), [aString]));
 $ctx1.supercall = false;
 $1=$recv($globals.SystemAnnouncer)._current();
 $3=$recv($globals.ProtocolRemoved)._new();
@@ -20538,7 +20544,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.Package.superclass||$boot.dnu).fn.prototype._printOn_.apply($recv(self), [aStream]));
+($globals.Package.superclass||$boot.nilAsClass).fn.prototype._printOn_.apply($recv(self), [aStream]));
 $ctx1.supercall = false;
 $recv(aStream)._nextPutAll_(" (");
 $ctx1.sendIdx["nextPutAll:"]=1;
@@ -21214,7 +21220,7 @@ return $core.withContext(function($ctx1) {
 var $1;
 $1=(
 $ctx1.supercall = true,
-($globals.Setting.klass.superclass||$boot.dnu).fn.prototype._new.apply($recv(self), []));
+($globals.Setting.klass.superclass||$boot.nilAsClass).fn.prototype._new.apply($recv(self), []));
 $ctx1.supercall = false;
 $recv($1)._key_(aString);
 $recv($1)._defaultValue_(aDefaultValue);
@@ -21935,11 +21941,11 @@ selector: "version",
 protocol: 'accessing',
 fn: function (){
 var self=this;
-return "0.16.0";
+return "0.16.1";
 
 },
 args: [],
-source: "version\x0a\x09\x22Answer the version string of Amber\x22\x0a\x09\x0a\x09^ '0.16.0'",
+source: "version\x0a\x09\x22Answer the version string of Amber\x22\x0a\x09\x0a\x09^ '0.16.1'",
 referencedClasses: [],
 messageSends: []
 }),
@@ -21959,7 +21965,7 @@ $1=self["@current"];
 if(($receiver = $1) == null || $receiver.isNil){
 self["@current"]=(
 $ctx1.supercall = true,
-($globals.SmalltalkImage.klass.superclass||$boot.dnu).fn.prototype._new.apply($recv(self), []));
+($globals.SmalltalkImage.klass.superclass||$boot.nilAsClass).fn.prototype._new.apply($recv(self), []));
 $ctx1.supercall = false;
 return self["@current"];
 } else {
@@ -22913,7 +22919,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.Announcer.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.Announcer.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@subscriptions"]=$recv($globals.OrderedCollection)._new();
 return self;
@@ -23076,7 +23082,7 @@ $1=self["@current"];
 if(($receiver = $1) == null || $receiver.isNil){
 self["@current"]=(
 $ctx1.supercall = true,
-($globals.SystemAnnouncer.klass.superclass||$boot.dnu).fn.prototype._new.apply($recv(self), []));
+($globals.SystemAnnouncer.klass.superclass||$boot.nilAsClass).fn.prototype._new.apply($recv(self), []));
 $ctx1.supercall = false;
 return self["@current"];
 } else {
@@ -25447,7 +25453,7 @@ return $core.withContext(function($ctx1) {
 var $3,$2,$1,$5,$4;
 (
 $ctx1.supercall = true,
-($globals.String.superclass||$boot.dnu).fn.prototype._inspectOn_.apply($recv(self), [anInspector]));
+($globals.String.superclass||$boot.nilAsClass).fn.prototype._inspectOn_.apply($recv(self), [anInspector]));
 $ctx1.supercall = false;
 $3=self._printString();
 $ctx1.sendIdx["printString"]=1;
@@ -30916,7 +30922,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.ClassCommentReader.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.ClassCommentReader.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 return self;
 }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.ClassCommentReader)});
@@ -31019,7 +31025,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.ClassProtocolReader.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.ClassProtocolReader.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 return self;
 }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.ClassProtocolReader)});
@@ -32060,7 +32066,7 @@ return $core.withContext(function($ctx1) {
 var $1;
 (
 $ctx1.supercall = true,
-($globals.PackageTransport.klass.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.PackageTransport.klass.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 $1=self.__eq_eq($globals.PackageTransport);
 if($core.assert($1)){
@@ -32151,7 +32157,7 @@ return $core.withContext(function($ctx1) {
 var $1;
 $1=(
 $ctx1.supercall = true,
-($globals.AmdPackageTransport.superclass||$boot.dnu).fn.prototype._asJSON.apply($recv(self), []));
+($globals.AmdPackageTransport.superclass||$boot.nilAsClass).fn.prototype._asJSON.apply($recv(self), []));
 $ctx1.supercall = false;
 $recv($1)._at_put_("amdNamespace",self._namespace());
 return $recv($1)._yourself();
@@ -32274,7 +32280,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.AmdPackageTransport.superclass||$boot.dnu).fn.prototype._printOn_.apply($recv(self), [aStream]));
+($globals.AmdPackageTransport.superclass||$boot.nilAsClass).fn.prototype._printOn_.apply($recv(self), [aStream]));
 $ctx1.supercall = false;
 $recv(aStream)._nextPutAll_(" (AMD Namespace: ");
 $ctx1.sendIdx["nextPutAll:"]=1;
@@ -34017,7 +34023,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.Node.superclass||$boot.dnu).fn.prototype._postCopy.apply($recv(self), []));
+($globals.Node.superclass||$boot.nilAsClass).fn.prototype._postCopy.apply($recv(self), []));
 $ctx1.supercall = false;
 $recv(self._nodes())._do_((function(each){
 return $core.withContext(function($ctx2) {
@@ -34361,7 +34367,7 @@ return $core.withContext(function($ctx1) {
 var $1;
 $1=(
 $ctx1.supercall = true,
-($globals.AssignmentNode.superclass||$boot.dnu).fn.prototype._shouldBeAliased.apply($recv(self), []));
+($globals.AssignmentNode.superclass||$boot.nilAsClass).fn.prototype._shouldBeAliased.apply($recv(self), []));
 $ctx1.supercall = false;
 return $recv($1)._or_((function(){
 return $core.withContext(function($ctx2) {
@@ -35392,7 +35398,7 @@ var $2,$1;
 sends=$recv($recv($recv(self._method())._sendIndexes())._at_(self._selector()))._size();
 $2=(
 $ctx1.supercall = true,
-($globals.SendNode.superclass||$boot.dnu).fn.prototype._shouldBeAliased.apply($recv(self), []));
+($globals.SendNode.superclass||$boot.nilAsClass).fn.prototype._shouldBeAliased.apply($recv(self), []));
 $ctx1.supercall = false;
 $1=$recv($2)._or_((function(){
 return $core.withContext(function($ctx2) {
@@ -36819,7 +36825,7 @@ return $core.withContext(function($ctx1) {
 var $1;
 $1=(
 $ctx1.supercall = true,
-($globals.MethodLexicalScope.superclass||$boot.dnu).fn.prototype._allVariableNames.apply($recv(self), []));
+($globals.MethodLexicalScope.superclass||$boot.nilAsClass).fn.prototype._allVariableNames.apply($recv(self), []));
 $ctx1.supercall = false;
 return $recv($1).__comma($recv(self._iVars())._keys());
 }, function($ctx1) {$ctx1.fill(self,"allVariableNames",{},$globals.MethodLexicalScope)});
@@ -36841,7 +36847,7 @@ return $core.withContext(function($ctx1) {
 var $1,$receiver;
 $1=(
 $ctx1.supercall = true,
-($globals.MethodLexicalScope.superclass||$boot.dnu).fn.prototype._bindingFor_.apply($recv(self), [aNode]));
+($globals.MethodLexicalScope.superclass||$boot.nilAsClass).fn.prototype._bindingFor_.apply($recv(self), [aNode]));
 $ctx1.supercall = false;
 if(($receiver = $1) == null || $receiver.isNil){
 return $recv(self._iVars())._at_ifAbsent_($recv(aNode)._value(),(function(){
@@ -37993,7 +37999,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.SemanticAnalyzer.superclass||$boot.dnu).fn.prototype._visitAssignmentNode_.apply($recv(self), [aNode]));
+($globals.SemanticAnalyzer.superclass||$boot.nilAsClass).fn.prototype._visitAssignmentNode_.apply($recv(self), [aNode]));
 $ctx1.supercall = false;
 $recv($recv(aNode)._left())._beAssigned();
 return self;
@@ -38025,7 +38031,7 @@ return $recv(self["@currentScope"])._addArg_(each);
 }));
 (
 $ctx1.supercall = true,
-($globals.SemanticAnalyzer.superclass||$boot.dnu).fn.prototype._visitBlockNode_.apply($recv(self), [aNode]));
+($globals.SemanticAnalyzer.superclass||$boot.nilAsClass).fn.prototype._visitBlockNode_.apply($recv(self), [aNode]));
 $ctx1.supercall = false;
 self._popScope();
 return self;
@@ -38048,7 +38054,7 @@ return $core.withContext(function($ctx1) {
 $recv(aNode)._receiver_($recv($recv($recv(aNode)._nodes())._first())._receiver());
 (
 $ctx1.supercall = true,
-($globals.SemanticAnalyzer.superclass||$boot.dnu).fn.prototype._visitCascadeNode_.apply($recv(self), [aNode]));
+($globals.SemanticAnalyzer.superclass||$boot.nilAsClass).fn.prototype._visitCascadeNode_.apply($recv(self), [aNode]));
 $ctx1.supercall = false;
 return self;
 }, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode},$globals.SemanticAnalyzer)});
@@ -38084,7 +38090,7 @@ return $recv(self["@currentScope"])._addArg_(each);
 }));
 (
 $ctx1.supercall = true,
-($globals.SemanticAnalyzer.superclass||$boot.dnu).fn.prototype._visitMethodNode_.apply($recv(self), [aNode]));
+($globals.SemanticAnalyzer.superclass||$boot.nilAsClass).fn.prototype._visitMethodNode_.apply($recv(self), [aNode]));
 $ctx1.supercall = false;
 $recv(aNode)._classReferences_(self._classReferences());
 $recv(aNode)._sendIndexes_(self._messageSends());
@@ -38116,7 +38122,7 @@ $recv($recv(self["@currentScope"])._methodScope())._addNonLocalReturn_(self["@cu
 };
 (
 $ctx1.supercall = true,
-($globals.SemanticAnalyzer.superclass||$boot.dnu).fn.prototype._visitReturnNode_.apply($recv(self), [aNode]));
+($globals.SemanticAnalyzer.superclass||$boot.nilAsClass).fn.prototype._visitReturnNode_.apply($recv(self), [aNode]));
 $ctx1.supercall = false;
 return self;
 }, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode},$globals.SemanticAnalyzer)});
@@ -38176,7 +38182,7 @@ $recv($10)._add_(aNode);
 $recv(aNode)._index_($recv($recv(self._messageSends())._at_($recv(aNode)._selector()))._size());
 (
 $ctx1.supercall = true,
-($globals.SemanticAnalyzer.superclass||$boot.dnu).fn.prototype._visitSendNode_.apply($recv(self), [aNode]));
+($globals.SemanticAnalyzer.superclass||$boot.nilAsClass).fn.prototype._visitSendNode_.apply($recv(self), [aNode]));
 $ctx1.supercall = false;
 return self;
 }, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode},$globals.SemanticAnalyzer)});
@@ -38203,7 +38209,7 @@ return $recv(self["@currentScope"])._addTemp_(each);
 }));
 (
 $ctx1.supercall = true,
-($globals.SemanticAnalyzer.superclass||$boot.dnu).fn.prototype._visitSequenceNode_.apply($recv(self), [aNode]));
+($globals.SemanticAnalyzer.superclass||$boot.nilAsClass).fn.prototype._visitSequenceNode_.apply($recv(self), [aNode]));
 $ctx1.supercall = false;
 return self;
 }, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode},$globals.SemanticAnalyzer)});
@@ -39863,7 +39869,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.IRClosureInstruction.superclass||$boot.dnu).fn.prototype._scope_.apply($recv(self), [aScope]));
+($globals.IRClosureInstruction.superclass||$boot.nilAsClass).fn.prototype._scope_.apply($recv(self), [aScope]));
 $ctx1.supercall = false;
 $recv(aScope)._instruction_(self);
 return self;
@@ -41279,7 +41285,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.IRJSTranslator.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.IRJSTranslator.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@stream"]=$recv($globals.JSStream)._new();
 return self;
@@ -41379,7 +41385,7 @@ return $recv(self._stream())._nextPutBlockContextFor_during_(anIRClosure,(functi
 return $core.withContext(function($ctx3) {
 return (
 $ctx3.supercall = true,
-($globals.IRJSTranslator.superclass||$boot.dnu).fn.prototype._visitIRClosure_.apply($recv(self), [anIRClosure]));
+($globals.IRJSTranslator.superclass||$boot.nilAsClass).fn.prototype._visitIRClosure_.apply($recv(self), [anIRClosure]));
 $ctx3.supercall = false;
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,3)});
 }));
@@ -41479,7 +41485,7 @@ return $recv(self._stream())._nextPutNonLocalReturnHandlingWith_((function(){
 return $core.withContext(function($ctx5) {
 return (
 $ctx5.supercall = true,
-($globals.IRJSTranslator.superclass||$boot.dnu).fn.prototype._visitIRMethod_.apply($recv(self), [anIRMethod]));
+($globals.IRJSTranslator.superclass||$boot.nilAsClass).fn.prototype._visitIRMethod_.apply($recv(self), [anIRMethod]));
 $ctx5.supercall = false;
 $ctx5.sendIdx["visitIRMethod:"]=1;
 }, function($ctx5) {$ctx5.fillBlock({},$ctx4,8)});
@@ -41487,7 +41493,7 @@ $ctx5.sendIdx["visitIRMethod:"]=1;
 } else {
 return (
 $ctx4.supercall = true,
-($globals.IRJSTranslator.superclass||$boot.dnu).fn.prototype._visitIRMethod_.apply($recv(self), [anIRMethod]));
+($globals.IRJSTranslator.superclass||$boot.nilAsClass).fn.prototype._visitIRMethod_.apply($recv(self), [anIRMethod]));
 $ctx4.supercall = false;
 };
 }, function($ctx4) {$ctx4.fillBlock({},$ctx3,4)});
@@ -41517,7 +41523,7 @@ $recv(self._stream())._nextPutNonLocalReturnWith_((function(){
 return $core.withContext(function($ctx2) {
 return (
 $ctx2.supercall = true,
-($globals.IRJSTranslator.superclass||$boot.dnu).fn.prototype._visitIRNonLocalReturn_.apply($recv(self), [anIRNonLocalReturn]));
+($globals.IRJSTranslator.superclass||$boot.nilAsClass).fn.prototype._visitIRNonLocalReturn_.apply($recv(self), [anIRNonLocalReturn]));
 $ctx2.supercall = false;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 }));
@@ -41542,7 +41548,7 @@ $recv(self._stream())._nextPutReturnWith_((function(){
 return $core.withContext(function($ctx2) {
 return (
 $ctx2.supercall = true,
-($globals.IRJSTranslator.superclass||$boot.dnu).fn.prototype._visitIRReturn_.apply($recv(self), [anIRReturn]));
+($globals.IRJSTranslator.superclass||$boot.nilAsClass).fn.prototype._visitIRReturn_.apply($recv(self), [anIRReturn]));
 $ctx2.supercall = false;
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
 }));
@@ -41831,7 +41837,7 @@ $5="(".__comma($recv(self._currentClass())._asJavascript());
 $ctx1.sendIdx[","]=2;
 $recv($1)._nextPutAll_($5);
 $ctx1.sendIdx["nextPutAll:"]=5;
-$recv($1)._nextPutAll_(".superclass||$boot.dnu).fn.prototype.");
+$recv($1)._nextPutAll_(".superclass||$boot.nilAsClass).fn.prototype.");
 $ctx1.sendIdx["nextPutAll:"]=6;
 $6=$recv($recv($recv(anIRSend)._selector())._asJavaScriptMethodName()).__comma(".apply(");
 $ctx1.sendIdx[","]=3;
@@ -41857,7 +41863,7 @@ return self;
 }, function($ctx1) {$ctx1.fill(self,"visitSuperSend:",{anIRSend:anIRSend},$globals.IRJSTranslator)});
 },
 args: ["anIRSend"],
-source: "visitSuperSend: anIRSend\x0a\x09self stream\x0a\x09\x09nextPutAll: '('; lf;\x0a\x09\x09nextPutAll: '//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);'; lf;\x0a\x09\x09nextPutAll: anIRSend scope alias, '.supercall = true,'; lf;\x0a\x09\x09nextPutAll: '//>>excludeEnd(\x22ctx\x22);'; lf;\x0a\x09\x09nextPutAll: '(', self currentClass asJavascript;\x0a\x09\x09nextPutAll: '.superclass||$boot.dnu).fn.prototype.';\x0a\x09\x09nextPutAll: anIRSend selector asJavaScriptMethodName, '.apply(';\x0a\x09\x09nextPutAll: '$recv(self), '.\x0a\x09self\x0a\x09\x09visitInstructionList: anIRSend instructions allButFirst\x0a\x09\x09enclosedBetween: '[' and: ']'.\x0a\x09self stream \x0a\x09\x09nextPutAll: '));'; lf;\x0a\x09\x09nextPutAll: '//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);'; lf;\x0a\x09\x09nextPutAll: anIRSend scope alias, '.supercall = false;'; lf;\x0a\x09\x09nextPutAll: '//>>excludeEnd(\x22ctx\x22);'",
+source: "visitSuperSend: anIRSend\x0a\x09self stream\x0a\x09\x09nextPutAll: '('; lf;\x0a\x09\x09nextPutAll: '//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);'; lf;\x0a\x09\x09nextPutAll: anIRSend scope alias, '.supercall = true,'; lf;\x0a\x09\x09nextPutAll: '//>>excludeEnd(\x22ctx\x22);'; lf;\x0a\x09\x09nextPutAll: '(', self currentClass asJavascript;\x0a\x09\x09nextPutAll: '.superclass||$boot.nilAsClass).fn.prototype.';\x0a\x09\x09nextPutAll: anIRSend selector asJavaScriptMethodName, '.apply(';\x0a\x09\x09nextPutAll: '$recv(self), '.\x0a\x09self\x0a\x09\x09visitInstructionList: anIRSend instructions allButFirst\x0a\x09\x09enclosedBetween: '[' and: ']'.\x0a\x09self stream \x0a\x09\x09nextPutAll: '));'; lf;\x0a\x09\x09nextPutAll: '//>>excludeStart(\x22ctx\x22, pragmas.excludeDebugContexts);'; lf;\x0a\x09\x09nextPutAll: anIRSend scope alias, '.supercall = false;'; lf;\x0a\x09\x09nextPutAll: '//>>excludeEnd(\x22ctx\x22);'",
 referencedClasses: [],
 messageSends: ["nextPutAll:", "stream", "lf", ",", "alias", "scope", "asJavascript", "currentClass", "asJavaScriptMethodName", "selector", "visitInstructionList:enclosedBetween:and:", "allButFirst", "instructions"]
 }),
@@ -41892,7 +41898,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.JSStream.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.JSStream.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@stream"]=""._writeStream();
 return self;
@@ -43160,7 +43166,7 @@ return localReturn;
 };
 $7=(
 $ctx1.supercall = true,
-($globals.IRInliner.superclass||$boot.dnu).fn.prototype._visitIRNonLocalReturn_.apply($recv(self), [anIRNonLocalReturn]));
+($globals.IRInliner.superclass||$boot.nilAsClass).fn.prototype._visitIRNonLocalReturn_.apply($recv(self), [anIRNonLocalReturn]));
 $ctx1.supercall = false;
 return $7;
 }, function($ctx1) {$ctx1.fill(self,"transformNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn,localReturn:localReturn},$globals.IRInliner)});
@@ -43186,7 +43192,7 @@ return $recv(self._assignmentInliner())._inlineAssignment_(anIRAssignment);
 } else {
 return (
 $ctx1.supercall = true,
-($globals.IRInliner.superclass||$boot.dnu).fn.prototype._visitIRAssignment_.apply($recv(self), [anIRAssignment]));
+($globals.IRInliner.superclass||$boot.nilAsClass).fn.prototype._visitIRAssignment_.apply($recv(self), [anIRAssignment]));
 $ctx1.supercall = false;
 };
 }, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:",{anIRAssignment:anIRAssignment},$globals.IRInliner)});
@@ -43229,7 +43235,7 @@ return $recv(self._returnInliner())._inlineReturn_(anIRReturn);
 } else {
 return (
 $ctx1.supercall = true,
-($globals.IRInliner.superclass||$boot.dnu).fn.prototype._visitIRReturn_.apply($recv(self), [anIRReturn]));
+($globals.IRInliner.superclass||$boot.nilAsClass).fn.prototype._visitIRReturn_.apply($recv(self), [anIRReturn]));
 $ctx1.supercall = false;
 };
 }, function($ctx1) {$ctx1.fill(self,"visitIRReturn:",{anIRReturn:anIRReturn},$globals.IRInliner)});
@@ -43255,7 +43261,7 @@ return $recv(self._sendInliner())._inlineSend_(anIRSend);
 } else {
 return (
 $ctx1.supercall = true,
-($globals.IRInliner.superclass||$boot.dnu).fn.prototype._visitIRSend_.apply($recv(self), [anIRSend]));
+($globals.IRInliner.superclass||$boot.nilAsClass).fn.prototype._visitIRSend_.apply($recv(self), [anIRSend]));
 $ctx1.supercall = false;
 };
 }, function($ctx1) {$ctx1.fill(self,"visitIRSend:",{anIRSend:anIRSend},$globals.IRInliner)});
@@ -44205,7 +44211,7 @@ return $core.withContext(function($ctx1) {
 var $2,$1,$4,$3,$5,$7,$6;
 inlinedClosure=(
 $ctx1.supercall = true,
-($globals.IRAssignmentInliner.superclass||$boot.dnu).fn.prototype._inlineClosure_.apply($recv(self), [anIRClosure]));
+($globals.IRAssignmentInliner.superclass||$boot.nilAsClass).fn.prototype._inlineClosure_.apply($recv(self), [anIRClosure]));
 $ctx1.supercall = false;
 $2=$recv(inlinedClosure)._instructions();
 $ctx1.sendIdx["instructions"]=2;
@@ -44255,7 +44261,7 @@ return $core.withContext(function($ctx1) {
 var $1,$3,$2,$4,$6,$5;
 closure=(
 $ctx1.supercall = true,
-($globals.IRReturnInliner.superclass||$boot.dnu).fn.prototype._inlineClosure_.apply($recv(self), [anIRClosure]));
+($globals.IRReturnInliner.superclass||$boot.nilAsClass).fn.prototype._inlineClosure_.apply($recv(self), [anIRClosure]));
 $ctx1.supercall = false;
 $1=$recv($recv(closure)._instructions())._last();
 $ctx1.sendIdx["last"]=1;
@@ -45596,7 +45602,7 @@ $recv(self._context())._localAt_ifAbsent_($recv(aNode)._value(),(function(){
 return $core.withContext(function($ctx2) {
 $1=(
 $ctx2.supercall = true,
-($globals.AISemanticAnalyzer.superclass||$boot.dnu).fn.prototype._visitVariableNode_.apply($recv(self), [aNode]));
+($globals.AISemanticAnalyzer.superclass||$boot.nilAsClass).fn.prototype._visitVariableNode_.apply($recv(self), [aNode]));
 $ctx2.supercall = false;
 throw $early=[$1];
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
@@ -46073,7 +46079,7 @@ return $recv($recv(self._interpreter())._context())._defineLocal_(each);
 }));
 $1=(
 $ctx1.supercall = true,
-($globals.ASTEnterNode.superclass||$boot.dnu).fn.prototype._visitSequenceNode_.apply($recv(self), [aNode]));
+($globals.ASTEnterNode.superclass||$boot.nilAsClass).fn.prototype._visitSequenceNode_.apply($recv(self), [aNode]));
 $ctx1.supercall = false;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode},$globals.ASTEnterNode)});
@@ -46294,7 +46300,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.ASTInterpreter.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.ASTInterpreter.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@forceAtEnd"]=false;
 return self;
@@ -46780,7 +46786,7 @@ $1=self._hasReturned();
 if(!$core.assert($1)){
 (
 $ctx1.supercall = true,
-($globals.ASTInterpreter.superclass||$boot.dnu).fn.prototype._visit_.apply($recv(self), [aNode]));
+($globals.ASTInterpreter.superclass||$boot.nilAsClass).fn.prototype._visit_.apply($recv(self), [aNode]));
 $ctx1.supercall = false;
 };
 return self;
@@ -46845,7 +46851,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.ASTInterpreter.superclass||$boot.dnu).fn.prototype._visitBlockSequenceNode_.apply($recv(self), [aNode]));
+($globals.ASTInterpreter.superclass||$boot.nilAsClass).fn.prototype._visitBlockSequenceNode_.apply($recv(self), [aNode]));
 $ctx1.supercall = false;
 self["@forceAtEnd"]=true;
 return self;
@@ -47249,7 +47255,7 @@ $ctx1.sendIdx["selector"]=1;
 sendIndex=$recv($1)._sendIndexAt_($2);
 (
 $ctx1.supercall = true,
-($globals.ASTPCNodeVisitor.superclass||$boot.dnu).fn.prototype._visitSendNode_.apply($recv(self), [aNode]));
+($globals.ASTPCNodeVisitor.superclass||$boot.nilAsClass).fn.prototype._visitSendNode_.apply($recv(self), [aNode]));
 $ctx1.supercall = false;
 $4=self._selector();
 $ctx1.sendIdx["selector"]=2;
@@ -48182,7 +48188,7 @@ return self._withErrorReporting_((function(){
 return $core.withContext(function($ctx3) {
 return (
 $ctx3.supercall = true,
-($globals.ReportingTestContext.superclass||$boot.dnu).fn.prototype._execute_.apply($recv(self), [aBlock]));
+($globals.ReportingTestContext.superclass||$boot.nilAsClass).fn.prototype._execute_.apply($recv(self), [aBlock]));
 $ctx3.supercall = false;
 }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
 }));
@@ -48282,7 +48288,7 @@ return $core.withContext(function($ctx1) {
 var $1;
 $1=(
 $ctx1.supercall = true,
-($globals.ReportingTestContext.klass.superclass||$boot.dnu).fn.prototype._testCase_.apply($recv(self), [aTestCase]));
+($globals.ReportingTestContext.klass.superclass||$boot.nilAsClass).fn.prototype._testCase_.apply($recv(self), [aTestCase]));
 $ctx1.supercall = false;
 $recv($1)._result_(aTestResult);
 $recv($1)._finished_(aBlock);
@@ -48398,7 +48404,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.TestResult.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.TestResult.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@timestamp"]=$recv($globals.Date)._now();
 self["@runs"]=(0);
@@ -48621,7 +48627,7 @@ return $core.withContext(function($ctx1) {
 var $1;
 (
 $ctx1.supercall = true,
-($globals.TestSuiteRunner.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.TestSuiteRunner.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@announcer"]=$recv($globals.Announcer)._new();
 $ctx1.sendIdx["new"]=1;
@@ -48747,7 +48753,7 @@ return $core.withContext(function($ctx1) {
 var $1;
 $1=(
 $ctx1.supercall = true,
-($globals.TestSuiteRunner.klass.superclass||$boot.dnu).fn.prototype._new.apply($recv(self), []));
+($globals.TestSuiteRunner.klass.superclass||$boot.nilAsClass).fn.prototype._new.apply($recv(self), []));
 $ctx1.supercall = false;
 return $recv($1)._suite_(aCollection);
 }, function($ctx1) {$ctx1.fill(self,"on:",{aCollection:aCollection},$globals.TestSuiteRunner.klass)});
@@ -52875,7 +52881,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.CollectionTest.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.CollectionTest.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@sampleBlock"]=(function(){
 
@@ -54570,7 +54576,7 @@ return $core.withContext(function($ctx1) {
 var $2,$3,$4,$1,$5,$7,$8,$9,$6,$10,$12,$11;
 (
 $ctx1.supercall = true,
-($globals.AssociativeCollectionTest.superclass||$boot.dnu).fn.prototype._testAddAll.apply($recv(self), []));
+($globals.AssociativeCollectionTest.superclass||$boot.nilAsClass).fn.prototype._testAddAll.apply($recv(self), []));
 $ctx1.supercall = false;
 $2=self._collection();
 $ctx1.sendIdx["collection"]=1;
@@ -54659,7 +54665,7 @@ return $core.withContext(function($ctx1) {
 var $2,$3,$1,$4,$6,$7,$5,$8,$10,$9;
 (
 $ctx1.supercall = true,
-($globals.AssociativeCollectionTest.superclass||$boot.dnu).fn.prototype._testComma.apply($recv(self), []));
+($globals.AssociativeCollectionTest.superclass||$boot.nilAsClass).fn.prototype._testComma.apply($recv(self), []));
 $ctx1.supercall = false;
 $2=self._collection();
 $ctx1.sendIdx["collection"]=1;
@@ -55154,7 +55160,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.DictionaryTest.superclass||$boot.dnu).fn.prototype._samplesDo_.apply($recv(self), [aBlock]));
+($globals.DictionaryTest.superclass||$boot.nilAsClass).fn.prototype._samplesDo_.apply($recv(self), [aBlock]));
 $ctx1.supercall = false;
 $recv(aBlock)._value_value_(true,(3));
 $ctx1.sendIdx["value:value:"]=1;
@@ -56063,7 +56069,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.ArrayTest.superclass||$boot.dnu).fn.prototype._samplesDo_.apply($recv(self), [aBlock]));
+($globals.ArrayTest.superclass||$boot.nilAsClass).fn.prototype._samplesDo_.apply($recv(self), [aBlock]));
 $ctx1.supercall = false;
 $recv(aBlock)._value_value_((3),(3));
 return self;
@@ -56505,7 +56511,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.StringTest.superclass||$boot.dnu).fn.prototype._samplesDo_.apply($recv(self), [aBlock]));
+($globals.StringTest.superclass||$boot.nilAsClass).fn.prototype._samplesDo_.apply($recv(self), [aBlock]));
 $ctx1.supercall = false;
 $recv(aBlock)._value_value_((3),"l");
 return self;
@@ -57305,7 +57311,7 @@ return $core.withContext(function($ctx1) {
 var $2,$3,$4,$1,$5,$7,$8,$9,$6,$10,$12,$11;
 (
 $ctx1.supercall = true,
-($globals.SetTest.superclass||$boot.dnu).fn.prototype._testAddAll.apply($recv(self), []));
+($globals.SetTest.superclass||$boot.nilAsClass).fn.prototype._testAddAll.apply($recv(self), []));
 $ctx1.supercall = false;
 $2=self._collection();
 $ctx1.sendIdx["collection"]=1;
@@ -57414,7 +57420,7 @@ return $core.withContext(function($ctx1) {
 var $2,$1;
 (
 $ctx1.supercall = true,
-($globals.SetTest.superclass||$boot.dnu).fn.prototype._testCollect.apply($recv(self), []));
+($globals.SetTest.superclass||$boot.nilAsClass).fn.prototype._testCollect.apply($recv(self), []));
 $ctx1.supercall = false;
 $2=[(5), (6), (8)]._asSet();
 $ctx1.sendIdx["asSet"]=1;
@@ -57444,7 +57450,7 @@ return $core.withContext(function($ctx1) {
 var $2,$3,$1,$4,$6,$7,$5,$8,$10,$9;
 (
 $ctx1.supercall = true,
-($globals.SetTest.superclass||$boot.dnu).fn.prototype._testComma.apply($recv(self), []));
+($globals.SetTest.superclass||$boot.nilAsClass).fn.prototype._testComma.apply($recv(self), []));
 $ctx1.supercall = false;
 $2=self._collection();
 $ctx1.sendIdx["collection"]=1;
@@ -62368,7 +62374,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.BaseFileManipulator.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.BaseFileManipulator.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@path"]=$recv(require)._value_("path");
 $ctx1.sendIdx["value:"]=1;
@@ -62412,7 +62418,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.Configurator.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.Configurator.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 return self;
 }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.Configurator)});
@@ -62789,7 +62795,7 @@ return $core.withContext(function($ctx1) {
 var $1;
 (
 $ctx1.supercall = true,
-($globals.FileServer.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.FileServer.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@http"]=self._require_("http");
 $ctx1.sendIdx["require:"]=1;
@@ -63800,7 +63806,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.Initer.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.Initer.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@childProcess"]=$recv(require)._value_("child_process");
 self["@nmPath"]=$recv(self["@path"])._join_with_(self._rootDirname(),"node_modules");
@@ -64245,7 +64251,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 (
 $ctx1.supercall = true,
-($globals.Repl.superclass||$boot.dnu).fn.prototype._initialize.apply($recv(self), []));
+($globals.Repl.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($recv(self), []));
 $ctx1.supercall = false;
 self["@session"]=$recv($globals.DoIt)._new();
 self["@readline"]=$recv(require)._value_("readline");
@@ -64681,6 +64687,505 @@ $globals.Repl.klass);
                                 });
                             });
                         }());
+//jshint eqnull:true
+
+define('amber/kernel-runtime',[],function () {
+    "use strict";
+
+    DNUBrik.deps = ["selectors", "messageSend", "manipulation", "root"];
+    function DNUBrik(brikz, st) {
+        var selectorsBrik = brikz.selectors;
+        var messageNotUnderstood = brikz.messageSend.messageNotUnderstood;
+        var installJSMethod = brikz.manipulation.installJSMethod;
+        var nilAsClass = brikz.root.nilAsClass;
+
+        /* Method not implemented handlers */
+
+        function makeDnuHandler(pair, targetClasses) {
+            var jsSelector = pair.js;
+            var fn = createHandler(pair.st);
+            installJSMethod(nilAsClass.fn.prototype, jsSelector, fn);
+            targetClasses.forEach(function (target) {
+                installJSMethod(target.fn.prototype, jsSelector, fn);
+            });
+        }
+
+        this.makeDnuHandler = makeDnuHandler;
+
+        /* Dnu handler method */
+
+        function createHandler(stSelector) {
+            return function () {
+                return messageNotUnderstood(this, stSelector, arguments);
+            };
+        }
+
+        selectorsBrik.selectorPairs.forEach(function (pair) {
+            makeDnuHandler(pair, []);
+        });
+    }
+
+    function ManipulationBrik(brikz, st) {
+        function installJSMethod(obj, jsSelector, fn) {
+            Object.defineProperty(obj, jsSelector, {
+                value: fn,
+                enumerable: false, configurable: true, writable: true
+            });
+        }
+
+        function installMethod(method, klass) {
+            installJSMethod(klass.fn.prototype, method.jsSelector, method.fn);
+        }
+
+        this.installMethod = installMethod;
+        this.installJSMethod = installJSMethod;
+    }
+
+    RuntimeClassesBrik.deps = ["selectors", "dnu", "classes", "manipulation"];
+    function RuntimeClassesBrik(brikz, st) {
+        var selectors = brikz.selectors;
+        var classes = brikz.classes.classes;
+        var wireKlass = brikz.classes.wireKlass;
+        var installMethod = brikz.manipulation.installMethod;
+        var installJSMethod = brikz.manipulation.installJSMethod;
+
+        /* Initialize a class in its class hierarchy. Handle both classes and
+         metaclasses. */
+
+        var detachedRootClasses = [];
+
+        function markClassDetachedRoot(klass) {
+            detachedRootClasses.addElement(klass);
+            klass.detachedRoot = true;
+        }
+
+        this.detachedRootClasses = function () {
+            return detachedRootClasses;
+        };
+
+        function initClassAndMetaclass(klass) {
+            initClass(klass);
+            if (klass.klass && !klass.meta) {
+                initClass(klass.klass);
+            }
+        }
+
+        classes().forEach(initClassAndMetaclass);
+
+        st._classAdded = initClassAndMetaclass;
+
+        function initClass(klass) {
+            wireKlass(klass);
+            if (klass.detachedRoot) {
+                copySuperclass(klass);
+            }
+            installMethods(klass);
+        }
+
+        function copySuperclass(klass) {
+            var myproto = klass.fn.prototype,
+                superproto = klass.superclass.fn.prototype;
+            selectors.selectorPairs.forEach(function (selectorPair) {
+                var jsSelector = selectorPair.js;
+                installJSMethod(myproto, jsSelector, superproto[jsSelector]);
+            });
+        }
+
+        function installMethods(klass) {
+            var methods = klass.methods;
+            Object.keys(methods).forEach(function (selector) {
+                installMethod(methods[selector], klass);
+            });
+        }
+
+        /* Manually set the constructor of an existing Smalltalk klass, making it a detached root class. */
+
+        st.setClassConstructor = this.setClassConstructor = function (klass, constructor) {
+            markClassDetachedRoot(klass);
+            klass.fn = constructor;
+            initClass(klass);
+        };
+    }
+
+    FrameBindingBrik.deps=["globals", "runtimeClasses"];
+    function FrameBindingBrik(brikz, st) {
+        var globals = brikz.smalltalkGlobals.globals;
+        var setClassConstructor = brikz.runtimeClasses.setClassConstructor;
+
+        setClassConstructor(globals.Number, Number);
+        setClassConstructor(globals.BlockClosure, Function);
+        setClassConstructor(globals.Boolean, Boolean);
+        setClassConstructor(globals.Date, Date);
+        setClassConstructor(globals.String, String);
+        setClassConstructor(globals.Array, Array);
+        setClassConstructor(globals.RegularExpression, RegExp);
+        setClassConstructor(globals.Error, Error);
+        setClassConstructor(globals.Promise, Promise);
+    }
+
+    RuntimeMethodsBrik.deps = ["manipulation", "dnu", "runtimeClasses"];
+    function RuntimeMethodsBrik(brikz, st) {
+        var installMethod = brikz.manipulation.installMethod;
+        var installJSMethod = brikz.manipulation.installJSMethod;
+        var makeDnuHandler = brikz.dnu.makeDnuHandler;
+        var detachedRootClasses = brikz.runtimeClasses.detachedRootClasses;
+
+        st._methodAdded = function (method, klass) {
+            installMethod(method, klass);
+            propagateMethodChange(klass, method, klass);
+        };
+
+        st._selectorsAdded = function (newSelectors) {
+            var targetClasses = detachedRootClasses();
+            newSelectors.forEach(function (pair) {
+                makeDnuHandler(pair, targetClasses);
+            });
+        };
+
+        st._methodRemoved = function (method, klass) {
+            delete klass.fn.prototype[method.jsSelector];
+            propagateMethodChange(klass, method, null);
+        };
+
+        function propagateMethodChange(klass, method, exclude) {
+            var selector = method.selector;
+            var jsSelector = method.jsSelector;
+            st.traverseClassTree(klass, function (subclass) {
+                if (subclass != exclude) {
+                    initMethodInClass(subclass, selector, jsSelector);
+                }
+            });
+        }
+
+        function initMethodInClass(klass, selector, jsSelector) {
+            if (klass.detachedRoot && !klass.methods[selector]) {
+                installJSMethod(klass.fn.prototype, jsSelector, klass.superclass.fn.prototype[jsSelector]);
+            }
+        }
+    }
+
+    PrimitivesBrik.deps = ["smalltalkGlobals"];
+    function PrimitivesBrik(brikz, st) {
+        var globals = brikz.smalltalkGlobals.globals;
+
+
+        var oid = 0;
+        /* Unique ID number generator */
+        st.nextId = function () {
+            oid += 1;
+            return oid;
+        };
+
+        /* Converts a JavaScript object to valid Smalltalk Object */
+        st.readJSObject = function (js) {
+            if (js == null)
+                return null;
+            var readObject = js.constructor === Object;
+            var readArray = js.constructor === Array;
+            var object = readObject ? globals.Dictionary._new() : readArray ? [] : js;
+
+            for (var i in js) {
+                if (readObject) {
+                    object._at_put_(i, st.readJSObject(js[i]));
+                }
+                if (readArray) {
+                    object[i] = st.readJSObject(js[i]);
+                }
+            }
+            return object;
+        };
+
+        /* Boolean assertion */
+        st.assert = function (shouldBeBoolean) {
+            if (typeof shouldBeBoolean === "boolean") return shouldBeBoolean;
+            else if (shouldBeBoolean != null && typeof shouldBeBoolean === "object") {
+                shouldBeBoolean = shouldBeBoolean.valueOf();
+                if (typeof shouldBeBoolean === "boolean") return shouldBeBoolean;
+            }
+            globals.NonBooleanReceiver._new()._object_(shouldBeBoolean)._signal();
+        };
+
+        /* List of all reserved words in JavaScript. They may not be used as variables
+         in Smalltalk. */
+
+        // list of reserved JavaScript keywords as of
+        //   http://es5.github.com/#x7.6.1.1
+        // and
+        //   http://people.mozilla.org/~jorendorff/es6-draft.html#sec-7.6.1
+        st.reservedWords = ['break', 'case', 'catch', 'continue', 'debugger',
+            'default', 'delete', 'do', 'else', 'finally', 'for', 'function',
+            'if', 'in', 'instanceof', 'new', 'return', 'switch', 'this', 'throw',
+            'try', 'typeof', 'var', 'void', 'while', 'with',
+            // Amber protected words: these should not be compiled as-is when in code
+            'arguments',
+            // ES5: future use: http://es5.github.com/#x7.6.1.2
+            'class', 'const', 'enum', 'export', 'extends', 'import', 'super',
+            // ES5: future use in strict mode
+            'implements', 'interface', 'let', 'package', 'private', 'protected',
+            'public', 'static', 'yield'];
+
+        st.globalJsVariables = ['window', 'document', 'process', 'global'];
+    }
+
+    RuntimeBrik.deps = ["selectorConversion", "smalltalkGlobals", "runtimeClasses"];
+    function RuntimeBrik(brikz, st) {
+        var globals = brikz.smalltalkGlobals.globals;
+        var setClassConstructor = brikz.runtimeClasses.setClassConstructor;
+
+        function SmalltalkMethodContext(home, setup) {
+            this.sendIdx = {};
+            this.homeContext = home;
+            this.setup = setup || function () {
+                };
+
+            this.supercall = false;
+        }
+
+        // Fallbacks
+        SmalltalkMethodContext.prototype.locals = {};
+        SmalltalkMethodContext.prototype.receiver = null;
+        SmalltalkMethodContext.prototype.selector = null;
+        SmalltalkMethodContext.prototype.lookupClass = null;
+
+        SmalltalkMethodContext.prototype.fill = function (receiver, selector, locals, lookupClass) {
+            this.receiver = receiver;
+            this.selector = selector;
+            this.locals = locals || {};
+            this.lookupClass = lookupClass;
+            if (this.homeContext) {
+                this.homeContext.evaluatedSelector = selector;
+            }
+        };
+
+        SmalltalkMethodContext.prototype.fillBlock = function (locals, ctx, index) {
+            this.locals = locals || {};
+            this.outerContext = ctx;
+            this.index = index || 0;
+        };
+
+        SmalltalkMethodContext.prototype.init = function () {
+            var home = this.homeContext;
+            if (home) {
+                home.init();
+            }
+
+            this.setup(this);
+        };
+
+        SmalltalkMethodContext.prototype.method = function () {
+            var method;
+            var lookup = this.lookupClass || this.receiver.klass;
+            while (!method && lookup) {
+                method = lookup.methods[st.js2st(this.selector)];
+                lookup = lookup.superclass;
+            }
+            return method;
+        };
+
+        setClassConstructor(globals.MethodContext, SmalltalkMethodContext);
+
+        /* This is the current call context object. While it is publicly available,
+         Use smalltalk.getThisContext() instead which will answer a safe copy of
+         the current context */
+
+        var thisContext = null;
+
+        st.withContext = function (worker, setup) {
+            if (thisContext) {
+                return inContext(worker, setup);
+            } else {
+                return inContextWithErrorHandling(worker, setup);
+            }
+        };
+
+        /*
+           Runs worker function so that error handler is not set up
+           if there isn't one. This is accomplished by unconditional
+           wrapping inside a context of a simulated `nil seamlessDoIt` call,
+           which then stops error handler setup (see st.withContext above).
+           The effect is, $core.seamless(fn)'s exceptions are not
+           handed into ST error handler and caller should process them.
+         */
+        st.seamless = function (worker) {
+            return inContext(worker, function (ctx) {
+                ctx.fill(null, "seamlessDoIt", {}, globals.UndefinedObject);
+            });
+        };
+
+        function inContextWithErrorHandling(worker, setup) {
+            try {
+                return inContext(worker, setup);
+            } catch (error) {
+                handleError(error);
+                thisContext = null;
+                // Rethrow the error in any case.
+                error.amberHandled = true;
+                throw error;
+            }
+        }
+
+        function inContext(worker, setup) {
+            var oldContext = thisContext;
+            thisContext = new SmalltalkMethodContext(thisContext, setup);
+            var result = worker(thisContext);
+            thisContext = oldContext;
+            return result;
+        }
+
+        /* Wrap a JavaScript exception in a Smalltalk Exception.
+
+         In case of a RangeError, stub the stack after 100 contexts to
+         avoid another RangeError later when the stack is manipulated. */
+        function wrappedError(error) {
+            var errorWrapper = globals.JavaScriptException._on_(error);
+            // Add the error to the context, so it is visible in the stack
+            try {
+                errorWrapper._signal();
+            } catch (ex) {
+            }
+            var context = st.getThisContext();
+            if (isRangeError(error)) {
+                stubContextStack(context);
+            }
+            errorWrapper._context_(context);
+            return errorWrapper;
+        }
+
+        /* Stub the context stack after 100 contexts */
+        function stubContextStack(context) {
+            var currentContext = context;
+            var contexts = 0;
+            while (contexts < 100) {
+                if (currentContext) {
+                    currentContext = currentContext.homeContext;
+                }
+                contexts++;
+            }
+            if (currentContext) {
+                currentContext.homeContext = undefined;
+            }
+        }
+
+        function isRangeError(error) {
+            return error instanceof RangeError;
+        }
+
+
+        /* Handles Smalltalk errors. Triggers the registered ErrorHandler
+         (See the Smalltalk class ErrorHandler and its subclasses */
+
+        function handleError(error) {
+            if (!error.smalltalkError) {
+                error = wrappedError(error);
+            }
+            globals.ErrorHandler._handleError_(error);
+        }
+
+        /* Handle thisContext pseudo variable */
+
+        st.getThisContext = function () {
+            if (thisContext) {
+                thisContext.init();
+                return thisContext;
+            } else {
+                return null;
+            }
+        };
+    }
+
+    MessageSendBrik.deps = ["smalltalkGlobals", "selectorConversion", "root"];
+    function MessageSendBrik(brikz, st) {
+        var globals = brikz.smalltalkGlobals.globals;
+        var nil = brikz.root.nil;
+
+        /* Handles unhandled errors during message sends */
+        // simply send the message and handle #dnu:
+
+        st.send2 = function (receiver, selector, args, klass) {
+            var method, jsSelector = st.st2js(selector);
+            if (receiver == null) {
+                receiver = nil;
+            }
+            method = klass ? klass.fn.prototype[jsSelector] : receiver.klass && receiver[jsSelector];
+            if (method) {
+                return method.apply(receiver, args || []);
+            } else {
+                return messageNotUnderstood(receiver, selector, args);
+            }
+        };
+
+        function invokeDnuMethod(receiver, stSelector, args) {
+            return receiver._doesNotUnderstand_(
+                globals.Message._new()
+                    ._selector_(stSelector)
+                    ._arguments_([].slice.call(args))
+            );
+        }
+
+        /* Handles #dnu: *and* JavaScript method calls.
+         if the receiver has no klass, we consider it a JS object (outside of the
+         Amber system). Else assume that the receiver understands #doesNotUnderstand: */
+        function messageNotUnderstood(receiver, stSelector, args) {
+            if (receiver.klass != null && !receiver.allowJavaScriptCalls) {
+                return invokeDnuMethod(receiver, stSelector, args);
+            }
+            /* Call a method of a JS object, or answer a property if it exists.
+             Else try wrapping a JSObjectProxy around the receiver. */
+            var propertyName = st.st2prop(stSelector);
+            if (!(propertyName in receiver)) {
+                return invokeDnuMethod(globals.JSObjectProxy._on_(receiver), stSelector, args);
+            }
+            return accessJavaScript(receiver, propertyName, args);
+        }
+
+        /* If the object property is a function, then call it, except if it starts with
+         an uppercase character (we probably want to answer the function itself in this
+         case and send it #new from Amber).
+
+         Converts keyword-based selectors by using the first
+         keyword only, but keeping all message arguments.
+
+         Example:
+         "self do: aBlock with: anObject" -> "self.do(aBlock, anObject)" */
+        function accessJavaScript(receiver, propertyName, args) {
+            var propertyValue = receiver[propertyName];
+            if (typeof propertyValue === "function" && !/^[A-Z]/.test(propertyName)) {
+                return propertyValue.apply(receiver, args || []);
+            } else if (args.length > 0) {
+                receiver[propertyName] = args[0];
+                return receiver;
+            } else {
+                return propertyValue;
+            }
+        }
+
+        st.accessJavaScript = accessJavaScript;
+        this.messageNotUnderstood = messageNotUnderstood;
+    }
+
+    /* Making smalltalk that can run */
+
+    function configureWithRuntime(brikz) {
+        brikz.dnu = DNUBrik;
+        brikz.manipulation = ManipulationBrik;
+        brikz.runtimeClasses = RuntimeClassesBrik;
+        brikz.frameBinding = FrameBindingBrik;
+        brikz.runtimeMethods = RuntimeMethodsBrik;
+        brikz.messageSend = MessageSendBrik;
+        brikz.runtime = RuntimeBrik;
+        brikz.primitives = PrimitivesBrik;
+
+        brikz.rebuild();
+    }
+
+    return configureWithRuntime;
+});
+
+// Depend on each module that is loaded lazily.
+// Add to packager tasks as dependency,
+// so the lazy-loaded modules are included.
+define('amber/lazypack',['./kernel-runtime'], {});
+
 
 require(["app"]);
 });