1
0
Ver Fonte

boot.js: nil moved to RootBrik

Herbert Vojčík há 11 anos atrás
pai
commit
cae1c64445
1 ficheiros alterados com 12 adições e 5 exclusões
  1. 12 5
      js/boot.js

+ 12 - 5
js/boot.js

@@ -97,17 +97,20 @@ function inherits(child, parent) {
 /* Smalltalk foundational objects */
 
 function SmalltalkObject() {}
-function SmalltalkNil() {}
-inherits(SmalltalkNil, SmalltalkObject);
 
 function Smalltalk() {}
 inherits(Smalltalk, SmalltalkObject);
 
-var nil = new SmalltalkNil();
 var api = new Smalltalk;
 var brikz = new Brikz(api);
 
 function RootBrik(brikz, st) {
+
+	function SmalltalkNil() {}
+	inherits(SmalltalkNil, SmalltalkObject);
+
+	this.nil = new SmalltalkNil;
+
 	this.__init__ = function () {
 		st.wrapClassName("Object", "Kernel-Objects", SmalltalkObject, undefined, false);
 		st.wrapClassName("Smalltalk", "Kernel-Objects", Smalltalk, st.Object, false);
@@ -202,6 +205,7 @@ function ClassInitBrik(brikz, st) {
 
 	var dnu = brikz.ensure("dnu");
 	var manip = brikz.ensure("manipulation");
+	var nil = brikz.ensure("root").nil;
 
 	/* Initialize a class in its class hierarchy. Handle both classes and
 	 metaclasses. */
@@ -295,6 +299,7 @@ function ClassesBrik(brikz, st) {
 
 	var org = brikz.ensure("organize");
 	var manip = brikz.ensure("manipulation");
+	var nil = brikz.ensure("root").nil;
 
 	function SmalltalkPackage() {}
 	function SmalltalkBehavior() {}
@@ -659,6 +664,7 @@ function SmalltalkInitBrik(brikz, st) {
 
 	brikz.ensure("classInit");
 	brikz.ensure("classes");
+	var nil = brikz.ensure("root").nil;
 
 	var initialized = false;
 
@@ -783,7 +789,7 @@ function PrimitivesBrik(brikz, st) {
 
 function RuntimeBrik(brikz, st) {
 
-	brikz.ensure("root");
+	var nil = brikz.ensure("root").nil;
 
 	function SmalltalkMethodContext(home, setup) {
 		this.homeContext = home;
@@ -904,6 +910,7 @@ function RuntimeBrik(brikz, st) {
 function MessageSendBrik(brikz, st) {
 
 	brikz.ensure("selectorConversion");
+	var nil = brikz.ensure("root").nil;
 
 	/* Handles unhandled errors during message sends */
 	// simply send the message and handle #dnu:
@@ -1061,7 +1068,7 @@ function runnable () {
 };
 
 global_smalltalk = api;
-global_nil = nil;
+global_nil = brikz.root.nil;
 global__st = api._st;
 api._st = null;