1
0
Преглед на файлове

Using SmalltalkSettings object

It is set up in .initialize.
It is used to find default namespace in SmalltalkImage.
Herbert Vojčík преди 12 години
родител
ревизия
5e391bcd68
променени са 6 файла, в които са добавени 24 реда и са изтрити 17 реда
  1. 1 1
      cli/index.html
  2. 1 1
      helios.html
  3. 1 1
      index.html
  4. 10 8
      js/Kernel-Infrastructure.js
  5. 2 2
      st/Kernel-Infrastructure.st
  6. 9 4
      support/helpers.js

+ 1 - 1
cli/index.html

@@ -22,7 +22,7 @@
         ["amber/devel",
         ["amber/devel",
             "amber_cli/AmberCli" ],
             "amber_cli/AmberCli" ],
         function (smalltalk) {
         function (smalltalk) {
-            smalltalk.initialize({defaultAmdNamespace: 'amber_cli'});
+            smalltalk.initialize({'vm.defaultAmdNamespace': 'amber_cli'});
             smalltalk.globals.Browser._openOn_(smalltalk.AmberCli);
             smalltalk.globals.Browser._openOn_(smalltalk.AmberCli);
         }
         }
     );
     );

+ 1 - 1
helios.html

@@ -20,7 +20,7 @@
                           return 'Do you want to close Amber? All uncommitted changes will be lost.';
                           return 'Do you want to close Amber? All uncommitted changes will be lost.';
                       };
                       };
 
 
-                      smalltalk.initialize({defaultAmdNamespace: "amber_core"});
+                      smalltalk.initialize({'vm.defaultAmdNamespace': "amber_core"});
 					  smalltalk.globals.HLManager._setup();
 					  smalltalk.globals.HLManager._setup();
                   }
                   }
           );
           );

+ 1 - 1
index.html

@@ -14,7 +14,7 @@
     require(
     require(
         ["amber/devel"],
         ["amber/devel"],
         function (smalltalk) {
         function (smalltalk) {
-            smalltalk.initialize({defaultAmdNamespace: "amber_core"});
+            smalltalk.initialize({'vm.defaultAmdNamespace': "amber_core"});
 
 
             smalltalk.globals.Browser._open();
             smalltalk.globals.Browser._open();
         }
         }

+ 10 - 8
js/Kernel-Infrastructure.js

@@ -2543,15 +2543,16 @@ selector: "defaultAmdNamespace",
 protocol: 'accessing amd',
 protocol: 'accessing amd',
 fn: function (){
 fn: function (){
 var self=this;
 var self=this;
+function $SmalltalkSettings(){return globals.SmalltalkSettings||(typeof SmalltalkSettings=="undefined"?nil:SmalltalkSettings)}
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
 var $1;
 var $1;
-$1=_st(self._vm())._defaultAmdNamespace();
+$1=_st($SmalltalkSettings())._at_("vm.defaultAmdNamespace");
 return $1;
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"defaultAmdNamespace",{},globals.SmalltalkImage)})},
 }, function($ctx1) {$ctx1.fill(self,"defaultAmdNamespace",{},globals.SmalltalkImage)})},
 args: [],
 args: [],
-source: "defaultAmdNamespace\x0a\x09^ self vm defaultAmdNamespace",
-messageSends: ["defaultAmdNamespace", "vm"],
-referencedClasses: []
+source: "defaultAmdNamespace\x0a\x09^ SmalltalkSettings at: 'vm.defaultAmdNamespace'",
+messageSends: ["at:"],
+referencedClasses: ["SmalltalkSettings"]
 }),
 }),
 globals.SmalltalkImage);
 globals.SmalltalkImage);
 
 
@@ -2561,13 +2562,14 @@ selector: "defaultAmdNamespace:",
 protocol: 'accessing amd',
 protocol: 'accessing amd',
 fn: function (aString){
 fn: function (aString){
 var self=this;
 var self=this;
+function $SmalltalkSettings(){return globals.SmalltalkSettings||(typeof SmalltalkSettings=="undefined"?nil:SmalltalkSettings)}
 return smalltalk.withContext(function($ctx1) { 
 return smalltalk.withContext(function($ctx1) { 
-_st(self._vm())._defaultAmdNamespace_(aString);
+_st($SmalltalkSettings())._at_put_("vm.defaultAmdNamespace",aString);
 return self}, function($ctx1) {$ctx1.fill(self,"defaultAmdNamespace:",{aString:aString},globals.SmalltalkImage)})},
 return self}, function($ctx1) {$ctx1.fill(self,"defaultAmdNamespace:",{aString:aString},globals.SmalltalkImage)})},
 args: ["aString"],
 args: ["aString"],
-source: "defaultAmdNamespace: aString\x0a\x09self vm defaultAmdNamespace: aString",
-messageSends: ["defaultAmdNamespace:", "vm"],
-referencedClasses: []
+source: "defaultAmdNamespace: aString\x0a\x09SmalltalkSettings at: 'vm.defaultAmdNamespace' put: aString",
+messageSends: ["at:put:"],
+referencedClasses: ["SmalltalkSettings"]
 }),
 }),
 globals.SmalltalkImage);
 globals.SmalltalkImage);
 
 

+ 2 - 2
st/Kernel-Infrastructure.st

@@ -1003,11 +1003,11 @@ amdRequire
 !
 !
 
 
 defaultAmdNamespace
 defaultAmdNamespace
-	^ self vm defaultAmdNamespace
+	^ SmalltalkSettings at: 'vm.defaultAmdNamespace'
 !
 !
 
 
 defaultAmdNamespace: aString
 defaultAmdNamespace: aString
-	self vm defaultAmdNamespace: aString
+	SmalltalkSettings at: 'vm.defaultAmdNamespace' put: aString
 ! !
 ! !
 
 
 !SmalltalkImage methodsFor: 'classes'!
 !SmalltalkImage methodsFor: 'classes'!

+ 9 - 4
support/helpers.js

@@ -15,13 +15,18 @@ define("amber/helpers", ["amber_vm/smalltalk", "amber_vm/globals", "require"], f
         enumerable: true, configurable: true, writable: false
         enumerable: true, configurable: true, writable: false
     });
     });
     exports.initialize = function (options) {
     exports.initialize = function (options) {
-        options = options || {};
+        var settings = globals.SmalltalkSettings || {};
+        settings['vm.defaultAmdNamespace'] = vm.defaultAmdNamespace;
+        // TODO load saved contents from localStorage
         if (exports.defaultAmdNamespace) {
         if (exports.defaultAmdNamespace) {
-            console.warn("`smalltalk.defaultAmdNamespace = 'namespace';` is deprecated. Please use `smalltalk.initialize({defaultAmdNamespace: 'namespace'});` instead.");
-            options.defaultAmdNamespace = options.defaultAmdNamespace || exports.defaultAmdNamespace;
+            console.warn("`smalltalk.defaultAmdNamespace = 'namespace';` is deprecated. Please use `smalltalk.initialize({'vm.defaultAmdNamespace': 'namespace'});` instead.");
+            settings['vm.defaultAmdNamespace'] = settings['vm.defaultAmdNamespace'] || exports.defaultAmdNamespace;
         }
         }
-        vm.defaultAmdNamespace = options.defaultAmdNamespace || vm.defaultAmdNamespace;
+        Object.keys(options).forEach(function (key) {
+            settings[key] = options[key];
+        });
         console.warn("smalltalk.ClassName is deprecated. Please  use smalltalk.globals.ClassName instead.");
         console.warn("smalltalk.ClassName is deprecated. Please  use smalltalk.globals.ClassName instead.");
+        globals.SmalltalkSettings = settings;
         return vm.initialize();
         return vm.initialize();
     };
     };