Browse Source

Native Functions encapsulation

Apostolis Xekoukoulotakis 12 years ago
parent
commit
be7935d55f
3 changed files with 139 additions and 0 deletions
  1. 47 0
      js/Kernel-Methods.deploy.js
  2. 67 0
      js/Kernel-Methods.js
  3. 25 0
      st/Kernel-Methods.st

+ 47 - 0
js/Kernel-Methods.deploy.js

@@ -877,3 +877,50 @@ smalltalk.MethodContext);
 
 
 
+smalltalk.addClass('NativeFunction', smalltalk.Object, [], 'Kernel-Methods');
+
+smalltalk.addMethod(
+"_class_",
+smalltalk.method({
+selector: "class:",
+fn: function (aString){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var a=eval(aString); return new a();;
+return self}, function($ctx1) {$ctx1.fill(self,"class:",{aString:aString}, smalltalk.NativeFunction.klass)})}
+}),
+smalltalk.NativeFunction.klass);
+
+smalltalk.addMethod(
+"_class_value_",
+smalltalk.method({
+selector: "class:value:",
+fn: function (aString,anObject){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var a=eval(aString); return new a(anObject);;
+return self}, function($ctx1) {$ctx1.fill(self,"class:value:",{aString:aString,anObject:anObject}, smalltalk.NativeFunction.klass)})}
+}),
+smalltalk.NativeFunction.klass);
+
+smalltalk.addMethod(
+"_class_value_value_",
+smalltalk.method({
+selector: "class:value:value:",
+fn: function (aString,anObject,anObject2){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var a=eval(aString); return new a(anObject,anObject2);;
+return self}, function($ctx1) {$ctx1.fill(self,"class:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2}, smalltalk.NativeFunction.klass)})}
+}),
+smalltalk.NativeFunction.klass);
+
+smalltalk.addMethod(
+"_class_value_value_value_",
+smalltalk.method({
+selector: "class:value:value:value:",
+fn: function (aString,anObject,anObject2,anObject3){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var a=eval(aString); return new a(anObject,anObject2, anObject3);;
+return self}, function($ctx1) {$ctx1.fill(self,"class:value:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2,anObject3:anObject3}, smalltalk.NativeFunction.klass)})}
+}),
+smalltalk.NativeFunction.klass);
+
+

+ 67 - 0
js/Kernel-Methods.js

@@ -1202,3 +1202,70 @@ smalltalk.MethodContext);
 
 
 
+smalltalk.addClass('NativeFunction', smalltalk.Object, [], 'Kernel-Methods');
+
+smalltalk.addMethod(
+"_class_",
+smalltalk.method({
+selector: "class:",
+category: 'not yet classified',
+fn: function (aString){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var a=eval(aString); return new a();;
+return self}, function($ctx1) {$ctx1.fill(self,"class:",{aString:aString}, smalltalk.NativeFunction.klass)})},
+args: ["aString"],
+source: "class: aString\x0a<var a=eval(aString); return new a();>\x0a",
+messageSends: [],
+referencedClasses: []
+}),
+smalltalk.NativeFunction.klass);
+
+smalltalk.addMethod(
+"_class_value_",
+smalltalk.method({
+selector: "class:value:",
+category: 'not yet classified',
+fn: function (aString,anObject){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var a=eval(aString); return new a(anObject);;
+return self}, function($ctx1) {$ctx1.fill(self,"class:value:",{aString:aString,anObject:anObject}, smalltalk.NativeFunction.klass)})},
+args: ["aString", "anObject"],
+source: "class: aString value:anObject\x0a\x0a<var a=eval(aString); return new a(anObject);>\x0a",
+messageSends: [],
+referencedClasses: []
+}),
+smalltalk.NativeFunction.klass);
+
+smalltalk.addMethod(
+"_class_value_value_",
+smalltalk.method({
+selector: "class:value:value:",
+category: 'not yet classified',
+fn: function (aString,anObject,anObject2){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var a=eval(aString); return new a(anObject,anObject2);;
+return self}, function($ctx1) {$ctx1.fill(self,"class:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2}, smalltalk.NativeFunction.klass)})},
+args: ["aString", "anObject", "anObject2"],
+source: "class: aString value:anObject value: anObject2\x0a\x0a<var a=eval(aString); return new a(anObject,anObject2);>\x0a",
+messageSends: [],
+referencedClasses: []
+}),
+smalltalk.NativeFunction.klass);
+
+smalltalk.addMethod(
+"_class_value_value_value_",
+smalltalk.method({
+selector: "class:value:value:value:",
+category: 'not yet classified',
+fn: function (aString,anObject,anObject2,anObject3){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
var a=eval(aString); return new a(anObject,anObject2, anObject3);;
+return self}, function($ctx1) {$ctx1.fill(self,"class:value:value:value:",{aString:aString,anObject:anObject,anObject2:anObject2,anObject3:anObject3}, smalltalk.NativeFunction.klass)})},
+args: ["aString", "anObject", "anObject2", "anObject3"],
+source: "class: aString value:anObject value: anObject2 value:anObject3\x0a\x0a<var a=eval(aString); return new a(anObject,anObject2, anObject3);>\x0a",
+messageSends: [],
+referencedClasses: []
+}),
+smalltalk.NativeFunction.klass);
+
+

+ 25 - 0
st/Kernel-Methods.st

@@ -419,3 +419,28 @@ isBlockContext
 	^ self selector isNil
 ! !
 
+Object subclass: #NativeFunction
+	instanceVariableNames: ''
+	package: 'Kernel-Methods'!
+
+!NativeFunction class methodsFor: 'not yet classified'!
+
+class: aString
+<var a=eval(aString); return new a();>
+!
+
+class: aString value:anObject
+
+<var a=eval(aString); return new a(anObject);>
+!
+
+class: aString value:anObject value: anObject2
+
+<var a=eval(aString); return new a(anObject,anObject2);>
+!
+
+class: aString value:anObject value: anObject2 value:anObject3
+
+<var a=eval(aString); return new a(anObject,anObject2, anObject3);>
+! !
+