Przeglądaj źródła

boot.js add-class functions return the added class

Herbert Vojčík 7 lat temu
rodzic
commit
036497264e
3 zmienionych plików z 9 dodań i 9 usunięć
  1. 2 3
      src/Kernel-Classes.js
  2. 1 2
      src/Kernel-Classes.st
  3. 6 4
      support/boot.js

+ 2 - 3
src/Kernel-Classes.js

@@ -2314,8 +2314,7 @@ var self=this;
 return $core.withContext(function($ctx1) {
 //>>excludeEnd("ctx");
 
-		$core.addClass(aString, aClass, aCollection, packageName);
-		return $globals[aString]
+		return $core.addClass(aString, aClass, aCollection, packageName);
 	;
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -2324,7 +2323,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aClass", "aString", "aCollection", "packageName"],
-source: "basicAddSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName\x0a\x09<\x0a\x09\x09$core.addClass(aString, aClass, aCollection, packageName);\x0a\x09\x09return $globals[aString]\x0a\x09>",
+source: "basicAddSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName\x0a\x09<\x0a\x09\x09return $core.addClass(aString, aClass, aCollection, packageName);\x0a\x09>",
 referencedClasses: [],
 //>>excludeEnd("ide");
 messageSends: []

+ 1 - 2
src/Kernel-Classes.st

@@ -707,8 +707,7 @@ installMethod: aCompiledMethod forClass: aBehavior protocol: aString
 
 basicAddSubclassOf: aClass named: aString instanceVariableNames: aCollection package: packageName
 	<
-		$core.addClass(aString, aClass, aCollection, packageName);
-		return $globals[aString]
+		return $core.addClass(aString, aClass, aCollection, packageName);
 	>
 !
 

+ 6 - 4
support/boot.js

@@ -478,7 +478,7 @@ define(['require', './compatibility'], function (require) {
             if (typeof superclass == 'undefined' || superclass && superclass.isNil) {
                 console.warn('Compiling ' + className + ' as a subclass of `nil`. A dependency might be missing.');
             }
-            rawAddClass(pkgName, className, superclass, iVarNames, false, null);
+            return rawAddClass(pkgName, className, superclass, iVarNames, false, null);
         };
 
         function rawAddClass(pkgName, className, superclass, iVarNames, fn, detachedRoot) {
@@ -519,6 +519,7 @@ define(['require', './compatibility'], function (require) {
 
             classes.addElement(theClass);
             org.addOrganizationElement(pkg, theClass);
+            return theClass;
         }
 
         st.removeClass = function (klass) {
@@ -544,12 +545,13 @@ define(['require', './compatibility'], function (require) {
          optionally detached root, and add it to the global smalltalk object.*/
 
         st.addDetachedRootClass = function (className, superclass, pkgName, fn) {
-            rawAddClass(pkgName, className, superclass, null, fn, true);
-            detachedRootClasses.addElement(globals[className]);
+            var klass = rawAddClass(pkgName, className, superclass, null, fn, true);
+            detachedRootClasses.addElement(klass);
+            return klass;
         };
 
         st.addCoupledClass = function (className, superclass, pkgName, fn) {
-            rawAddClass(pkgName, className, superclass, null, fn, false);
+            return rawAddClass(pkgName, className, superclass, null, fn, false);
         };
 
         /* Manually set the constructor of an existing Smalltalk klass, making it a detached root class. */