Browse Source

Change API.

Future-proof when slots are added.
Herby Vojčík 5 years ago
parent
commit
7ccabca537

+ 1 - 1
cli/src/AmberCli.js

@@ -1739,7 +1739,7 @@ messageSends: ["log:"]
 $globals.FileServer);
 
 
-$core.setInstanceVariables($globals.FileServer.a$cls, ["mimeTypes"]);
+$core.setSlots($globals.FileServer.a$cls, ["mimeTypes"]);
 $core.addMethod(
 $core.method({
 selector: "commandLineSwitches",

+ 1 - 1
lang/API-CHANGES.txt

@@ -8,7 +8,7 @@
 + amber/helpers exports >>
   + beClean
 + amber/boot api >>
-  + setInstanceVariables(klass, arrayOfNames)
+  + setSlots(klass, arrayOfNames)
 
 
 0.22.4:

+ 6 - 6
lang/base/kernel-language.js

@@ -329,17 +329,17 @@ define(function () {
 
         this.installIvarCompat = installIvarCompat;
 
-        function setInstanceVariables (klass, instanceVariableNames) {
-            instanceVariableNames.forEach(function (name) {
+        function setSlots (klass, slots) {
+            slots.forEach(function (name) {
                 if (!name.match(/^[a-zA-Z][a-zA-Z0-9]*$/))
                     throw new Error("Wrong identifier name: " + name);
             });
 
-            klass.instanceVariableNames = instanceVariableNames;
+            klass.instanceVariableNames = slots;
             installIvarCompat(klass);
         }
 
-        st.setInstanceVariables = setInstanceVariables;
+        st.setSlots = setSlots;
 
         // TODO remove, .iVarNames backward compatibility
         Object.defineProperty(SmalltalkBehavior.prototype, "iVarNames", {
@@ -349,7 +349,7 @@ define(function () {
                 return this.instanceVariableNames;
             },
             set: function (instanceVariableNames) {
-                setInstanceVariables(this, instanceVariableNames);
+                setSlots(this, instanceVariableNames);
             }
         });
 
@@ -430,7 +430,7 @@ define(function () {
             // TODO remove, backward compatibility
             if (arguments[3]) {
                 var added = st.addClass(className, superclass, arguments[3]);
-                setInstanceVariables(added, category);
+                setSlots(added, category);
                 return added;
             }
 

+ 1 - 1
lang/src/Kernel-Announcements.js

@@ -544,7 +544,7 @@ $core.addClass("SystemAnnouncer", $globals.Announcer, [], "Kernel-Announcements"
 $globals.SystemAnnouncer.comment="My unique instance is the global announcer handling all Amber system-related announces.\x0a\x0a## API\x0a\x0aAccess to the unique instance is done via `#current`";
 //>>excludeEnd("ide");
 
-$core.setInstanceVariables($globals.SystemAnnouncer.a$cls, ["current"]);
+$core.setSlots($globals.SystemAnnouncer.a$cls, ["current"]);
 $core.addMethod(
 $core.method({
 selector: "current",

+ 3 - 3
lang/src/Kernel-Classes.js

@@ -1347,7 +1347,7 @@ $1=$recv(aClass)._isMetaclass();
 if(!$core.assert($1)){
 $self._error_($recv($recv(aClass)._name()).__comma(" is not a metaclass"));
 }
-$recv($recv($globals.Smalltalk)._core())._setInstanceVariables_to_(aClass,aCollection);
+$recv($recv($globals.Smalltalk)._core())._setSlots_to_(aClass,aCollection);
 return self;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 }, function($ctx1) {$ctx1.fill(self,"basicClass:instanceVariables:",{aClass:aClass,aCollection:aCollection},$globals.ClassBuilder)});
@@ -1355,10 +1355,10 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aClass", "aCollection"],
-source: "basicClass: aClass instanceVariables: aCollection\x0a\x0a\x09aClass isMetaclass ifFalse: [ self error: aClass name, ' is not a metaclass' ].\x0a\x09Smalltalk core setInstanceVariables: aClass to: aCollection",
+source: "basicClass: aClass instanceVariables: aCollection\x0a\x0a\x09aClass isMetaclass ifFalse: [ self error: aClass name, ' is not a metaclass' ].\x0a\x09Smalltalk core setSlots: aClass to: aCollection",
 referencedClasses: ["Smalltalk"],
 //>>excludeEnd("ide");
-messageSends: ["ifFalse:", "isMetaclass", "error:", ",", "name", "setInstanceVariables:to:", "core"]
+messageSends: ["ifFalse:", "isMetaclass", "error:", ",", "name", "setSlots:to:", "core"]
 }),
 $globals.ClassBuilder);
 

+ 1 - 1
lang/src/Kernel-Classes.st

@@ -489,7 +489,7 @@ basicAddTraitNamed: aString package: anotherString
 basicClass: aClass instanceVariables: aCollection
 
 	aClass isMetaclass ifFalse: [ self error: aClass name, ' is not a metaclass' ].
-	Smalltalk core setInstanceVariables: aClass to: aCollection
+	Smalltalk core setSlots: aClass to: aCollection
 !
 
 basicRemoveClass: aClass

+ 3 - 3
lang/src/Kernel-Infrastructure.js

@@ -2270,7 +2270,7 @@ messageSends: ["do:", "ifFalse:", "isString", "respondsTo:", "error:", "&", "key
 $globals.Package);
 
 
-$core.setInstanceVariables($globals.Package.a$cls, ["defaultCommitPathJs", "defaultCommitPathSt"]);
+$core.setSlots($globals.Package.a$cls, ["defaultCommitPathJs", "defaultCommitPathSt"]);
 $core.addMethod(
 $core.method({
 selector: "named:",
@@ -2700,7 +2700,7 @@ messageSends: ["ifNotNil:", "package", "beDirty"]
 $globals.PackageStateObserver);
 
 
-$core.setInstanceVariables($globals.PackageStateObserver.a$cls, ["current"]);
+$core.setSlots($globals.PackageStateObserver.a$cls, ["current"]);
 $core.addMethod(
 $core.method({
 selector: "current",
@@ -4128,7 +4128,7 @@ messageSends: []
 $globals.SmalltalkImage);
 
 
-$core.setInstanceVariables($globals.SmalltalkImage.a$cls, ["current"]);
+$core.setSlots($globals.SmalltalkImage.a$cls, ["current"]);
 $core.addMethod(
 $core.method({
 selector: "current",

+ 1 - 1
lang/src/Kernel-Methods.js

@@ -1447,7 +1447,7 @@ messageSends: []
 $globals.ForkPool);
 
 
-$core.setInstanceVariables($globals.ForkPool.a$cls, ["default"]);
+$core.setSlots($globals.ForkPool.a$cls, ["default"]);
 $core.addMethod(
 $core.method({
 selector: "default",

+ 3 - 3
lang/src/Platform-ImportExport.js

@@ -1220,7 +1220,7 @@ $4=$recv($recv(aClass)._theMetaClass())._asJavaScriptSource();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 $ctx2.sendIdx["asJavaScriptSource"]=1;
 //>>excludeEnd("ctx");
-$3=["$core.setInstanceVariables(",$4,", ",$recv(classIvars)._asJavaScriptSource(),");"];
+$3=["$core.setSlots(",$4,", ",$recv(classIvars)._asJavaScriptSource(),");"];
 $recv(aStream)._write_($3);
 return $recv(aStream)._lf();
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);
@@ -1234,7 +1234,7 @@ return self;
 },
 //>>excludeStart("ide", pragmas.excludeIdeData);
 args: ["aClass", "aStream"],
-source: "exportMetaDefinitionOf: aClass on: aStream\x0a\x09aStream lf.\x0a\x09aClass theMetaClass instanceVariableNames ifNotEmpty: [ :classIvars | aStream\x0a\x09\x09write: { '$core.setInstanceVariables('. aClass theMetaClass asJavaScriptSource. ', '. classIvars asJavaScriptSource. ');' };\x0a\x09\x09lf ]",
+source: "exportMetaDefinitionOf: aClass on: aStream\x0a\x09aStream lf.\x0a\x09aClass theMetaClass instanceVariableNames ifNotEmpty: [ :classIvars | aStream\x0a\x09\x09write: { '$core.setSlots('. aClass theMetaClass asJavaScriptSource. ', '. classIvars asJavaScriptSource. ');' };\x0a\x09\x09lf ]",
 referencedClasses: [],
 //>>excludeEnd("ide");
 messageSends: ["lf", "ifNotEmpty:", "instanceVariableNames", "theMetaClass", "write:", "asJavaScriptSource"]
@@ -3916,7 +3916,7 @@ messageSends: ["type", "class"]
 $globals.PackageTransport);
 
 
-$core.setInstanceVariables($globals.PackageTransport.a$cls, ["registry"]);
+$core.setSlots($globals.PackageTransport.a$cls, ["registry"]);
 $core.addMethod(
 $core.method({
 selector: "classRegisteredFor:",

+ 1 - 1
lang/src/Platform-ImportExport.st

@@ -329,7 +329,7 @@ exportDefinitionOf: aClass on: aStream
 exportMetaDefinitionOf: aClass on: aStream
 	aStream lf.
 	aClass theMetaClass instanceVariableNames ifNotEmpty: [ :classIvars | aStream
-		write: { '$core.setInstanceVariables('. aClass theMetaClass asJavaScriptSource. ', '. classIvars asJavaScriptSource. ');' };
+		write: { '$core.setSlots('. aClass theMetaClass asJavaScriptSource. ', '. classIvars asJavaScriptSource. ');' };
 		lf ]
 !
 

+ 3 - 3
lang/src/Platform-Services.js

@@ -162,7 +162,7 @@ messageSends: ["ifNotNil:", "home", "logContext:"]
 $globals.ConsoleErrorHandler);
 
 
-$core.setInstanceVariables($globals.ConsoleErrorHandler.a$cls, ["current"]);
+$core.setSlots($globals.ConsoleErrorHandler.a$cls, ["current"]);
 $core.addMethod(
 $core.method({
 selector: "initialize",
@@ -1292,7 +1292,7 @@ messageSends: ["do:"]
 $globals.NullProgressHandler);
 
 
-$core.setInstanceVariables($globals.NullProgressHandler.a$cls, ["current"]);
+$core.setSlots($globals.NullProgressHandler.a$cls, ["current"]);
 $core.addMethod(
 $core.method({
 selector: "initialize",
@@ -1323,7 +1323,7 @@ $core.addClass("Service", $globals.Object, [], "Platform-Services");
 $globals.Service.comment="I implement the basic behavior for class registration to a service.\x0a\x0aSee the `Transcript` class for a concrete service.\x0a\x0a## API\x0a\x0aUse class-side methods `#register:` and `#registerIfNone:` to register classes to a specific service.";
 //>>excludeEnd("ide");
 
-$core.setInstanceVariables($globals.Service.a$cls, ["current"]);
+$core.setSlots($globals.Service.a$cls, ["current"]);
 $core.addMethod(
 $core.method({
 selector: "current",