Browse Source

Object >> in: and JSObjectProxy >> in:

Herbert Vojčík 9 years ago
parent
commit
3c48a90ebd
5 changed files with 73 additions and 5 deletions
  1. 8 0
      API-CHANGES.txt
  2. 25 0
      src/Kernel-Infrastructure.js
  3. 4 0
      src/Kernel-Infrastructure.st
  4. 26 1
      src/Kernel-Objects.js
  5. 10 4
      src/Kernel-Objects.st

+ 8 - 0
API-CHANGES.txt

@@ -1,3 +1,11 @@
+0.14.11:
+
++ Object >>
+  + in:
++ JSObjectProxy >>
+  + in:
+
+
 0.14.10:
 
 + JSObjectProxy class >>

+ 25 - 0
src/Kernel-Infrastructure.js

@@ -231,6 +231,31 @@ messageSends: ["ifNil:ifNotNil:", "lookupProperty:ofProxy:", "asJavaScriptProper
 }),
 $globals.JSObjectProxy);
 
+$core.addMethod(
+$core.method({
+selector: "in:",
+protocol: 'accessing',
+fn: function (aValuable){
+var self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+var $1;
+$1=$recv(aValuable)._value_(self["@jsObject"]);
+return $1;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"in:",{aValuable:aValuable},$globals.JSObjectProxy)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: ["aValuable"],
+source: "in: aValuable\x0a\x09^ aValuable value: jsObject",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["value:"]
+}),
+$globals.JSObjectProxy);
+
 $core.addMethod(
 $core.method({
 selector: "inspectOn:",

+ 4 - 0
src/Kernel-Infrastructure.st

@@ -62,6 +62,10 @@ at: aString put: anObject
 	<return self['@jsObject'][aString] = anObject>
 !
 
+in: aValuable
+	^ aValuable value: jsObject
+!
+
 jsObject
 	^ jsObject
 ! !

+ 26 - 1
src/Kernel-Objects.js

@@ -1159,6 +1159,31 @@ messageSends: ["signal"]
 }),
 $globals.Object);
 
+$core.addMethod(
+$core.method({
+selector: "in:",
+protocol: 'evaluating',
+fn: function (aValuable){
+var self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+var $1;
+$1=$recv(aValuable)._value_(self);
+return $1;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"in:",{aValuable:aValuable},$globals.Object)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: ["aValuable"],
+source: "in: aValuable\x0a\x09^ aValuable value: self",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["value:"]
+}),
+$globals.Object);
+
 $core.addMethod(
 $core.method({
 selector: "inspectOn:",
@@ -1622,7 +1647,7 @@ $globals.Object);
 $core.addMethod(
 $core.method({
 selector: "value",
-protocol: 'accessing',
+protocol: 'evaluating',
 fn: function (){
 var self=this;
 //>>excludeStart("ctx", pragmas.excludeDebugContexts);

+ 10 - 4
src/Kernel-Objects.st

@@ -209,10 +209,6 @@ basicDelete: aString
 
 size
 	self error: 'Object not indexable'
-!
-
-value
-	<return self.valueOf()>
 ! !
 
 !Object methodsFor: 'browsing'!
@@ -313,6 +309,16 @@ throw: anObject
 	< throw anObject >
 ! !
 
+!Object methodsFor: 'evaluating'!
+
+in: aValuable
+	^ aValuable value: self
+!
+
+value
+	<return self.valueOf()>
+! !
+
 !Object methodsFor: 'inspecting'!
 
 inspectOn: anInspector