1
0
Ver Fonte

boot.js: bootstrap extreacted to brik; everything in briks now

Herbert Vojčík há 11 anos atrás
pai
commit
2423a9b019
1 ficheiros alterados com 47 adições e 42 exclusões
  1. 47 42
      js/boot.js

+ 47 - 42
js/boot.js

@@ -977,6 +977,52 @@ function SelectorConversionBrik(brikz, st) {
 	}
 }
 
+function BootstrapBrik(brikz, st) {
+
+	brikz.ensure("classes");
+	brikz.ensure("methods");
+	brikz.ensure("organize");
+	brikz.ensure("runtime");
+
+	/***************************************** BOOTSTRAP ******************************************/
+
+	st.wrapClassName("Object", "Kernel-Objects", SmalltalkObject, undefined, false);
+	st.wrapClassName("Behavior", "Kernel-Classes", brikz.classes.Behavior, st.Object, false);
+	st.wrapClassName("Metaclass", "Kernel-Classes", brikz.classes.Metaclass, st.Behavior, false);
+	st.wrapClassName("Class", "Kernel-Classes", brikz.classes.Class, st.Behavior, false);
+
+	st.Object.klass.superclass = st.Class;
+
+	st.wrapClassName("Smalltalk", "Kernel-Objects", Smalltalk, st.Object, false);
+	st.wrapClassName("Package", "Kernel-Objects", brikz.classes.Package, st.Object, false);
+	st.wrapClassName("CompiledMethod", "Kernel-Methods", brikz.methods.Method, st.Object, false);
+	st.wrapClassName("Organizer", "Kernel-Objects", brikz.organize.Organizer, st.Object, false);
+	st.wrapClassName("PackageOrganizer", "Kernel-Objects", brikz.organize.PackageOrganizer, st.Organizer, false);
+	st.wrapClassName("ClassOrganizer", "Kernel-Objects", brikz.organize.ClassOrganizer, st.Organizer, false);
+
+	st.wrapClassName("Number", "Kernel-Objects", Number, st.Object);
+	st.wrapClassName("BlockClosure", "Kernel-Methods", Function, st.Object);
+	st.wrapClassName("Boolean", "Kernel-Objects", Boolean, st.Object);
+	st.wrapClassName("Date", "Kernel-Objects", Date, st.Object);
+	st.wrapClassName("UndefinedObject", "Kernel-Objects", SmalltalkNil, st.Object, false);
+
+	st.addClass("Collection", st.Object, null, "Kernel-Collections");
+	st.addClass("IndexableCollection", st.Collection, null, "Kernel-Collections");
+	st.addClass("SequenceableCollection", st.IndexableCollection, null, "Kernel-Collections");
+	st.addClass("CharacterArray", st.SequenceableCollection, null, "Kernel-Collections");
+	st.wrapClassName("String", "Kernel-Collections", String, st.CharacterArray);
+	st.wrapClassName("Array", "Kernel-Collections", Array, st.SequenceableCollection);
+	st.wrapClassName("RegularExpression", "Kernel-Collections", RegExp, st.Object);
+
+	st.wrapClassName("Error", "Kernel-Exceptions", Error, st.Object);
+	st.wrapClassName("MethodContext", "Kernel-Methods", brikz.runtime.MethodContext, st.Object, false);
+
+	/* Alias definitions */
+
+	st.alias(st.Array, "OrderedCollection");
+	st.alias(st.Date, "Time");
+}
+
 brikz.dnu = DNUBrik;
 brikz.messageSend = MessageSendBrik;
 brikz.organize = OrganizeBrik;
@@ -989,50 +1035,9 @@ brikz.classes = ClassesBrik;
 brikz.methods = MethodsBrik;
 brikz.instance = InstanceBrik;
 brikz.augments = AugmentsBrik;
+brikz.bootstrap = BootstrapBrik;
 brikz.rebuild();
 
-var smalltalk = api;
-
-/***************************************** BOOTSTRAP ******************************************/
-
-smalltalk.wrapClassName("Object", "Kernel-Objects", SmalltalkObject, undefined, false);
-smalltalk.wrapClassName("Behavior", "Kernel-Classes", brikz.classes.Behavior, smalltalk.Object, false);
-smalltalk.wrapClassName("Metaclass", "Kernel-Classes", brikz.classes.Metaclass, smalltalk.Behavior, false);
-smalltalk.wrapClassName("Class", "Kernel-Classes", brikz.classes.Class, smalltalk.Behavior, false);
-
-smalltalk.Object.klass.superclass = smalltalk.Class;
-
-
-smalltalk.wrapClassName("Smalltalk", "Kernel-Objects", Smalltalk, smalltalk.Object, false);
-smalltalk.wrapClassName("Package", "Kernel-Objects", brikz.classes.Package, smalltalk.Object, false);
-smalltalk.wrapClassName("CompiledMethod", "Kernel-Methods", brikz.methods.Method, smalltalk.Object, false);
-smalltalk.wrapClassName("Organizer", "Kernel-Objects", brikz.organize.Organizer, smalltalk.Object, false);
-smalltalk.wrapClassName("PackageOrganizer", "Kernel-Objects", brikz.organize.PackageOrganizer, smalltalk.Organizer, false);
-smalltalk.wrapClassName("ClassOrganizer", "Kernel-Objects", brikz.organize.ClassOrganizer, smalltalk.Organizer, false);
-
-
-smalltalk.wrapClassName("Number", "Kernel-Objects", Number, smalltalk.Object);
-smalltalk.wrapClassName("BlockClosure", "Kernel-Methods", Function, smalltalk.Object);
-smalltalk.wrapClassName("Boolean", "Kernel-Objects", Boolean, smalltalk.Object);
-smalltalk.wrapClassName("Date", "Kernel-Objects", Date, smalltalk.Object);
-smalltalk.wrapClassName("UndefinedObject", "Kernel-Objects", SmalltalkNil, smalltalk.Object, false);
-
-smalltalk.addClass("Collection", smalltalk.Object, null, "Kernel-Collections");
-smalltalk.addClass("IndexableCollection", smalltalk.Collection, null, "Kernel-Collections");
-smalltalk.addClass("SequenceableCollection", smalltalk.IndexableCollection, null, "Kernel-Collections");
-smalltalk.addClass("CharacterArray", smalltalk.SequenceableCollection, null, "Kernel-Collections");
-smalltalk.wrapClassName("String", "Kernel-Collections", String, smalltalk.CharacterArray);
-smalltalk.wrapClassName("Array", "Kernel-Collections", Array, smalltalk.SequenceableCollection);
-smalltalk.wrapClassName("RegularExpression", "Kernel-Collections", RegExp, smalltalk.Object);
-
-smalltalk.wrapClassName("Error", "Kernel-Exceptions", Error, smalltalk.Object);
-smalltalk.wrapClassName("MethodContext", "Kernel-Methods", brikz.runtime.MethodContext, smalltalk.Object, false);
-
-/* Alias definitions */
-
-smalltalk.alias(smalltalk.Array, "OrderedCollection");
-smalltalk.alias(smalltalk.Date, "Time");
-
 global_smalltalk = api;
 global_nil = nil;
 global__st = brikz.runtime._st;