Forráskód Böngészése

Putting DOM node (`aDomite << aDomNode`) works.

Herbert Vojčík 9 éve
szülő
commit
824112c840
2 módosított fájl, 40 hozzáadás és 1 törlés
  1. 32 1
      src/DOMite.js
  2. 8 0
      src/DOMite.st

+ 32 - 1
src/DOMite.js

@@ -1,4 +1,4 @@
-define("domite/DOMite", ["amber/boot", "amber_core/Kernel-Collections"], function($boot){
+define("domite/DOMite", ["amber/boot", "amber_core/Kernel-Collections", "amber_core/Kernel-Infrastructure"], function($boot){
 var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;
 $core.addPackage('DOMite');
 $core.packages["DOMite"].innerEval = function (expr) { return eval(expr); };
@@ -868,6 +868,37 @@ messageSends: ["fromElement:", "createDocumentFragment"]
 }),
 $globals.Domite.klass);
 
+$core.addMethod(
+$core.method({
+selector: "putOn:",
+protocol: '*DOMite',
+fn: function (aStream){
+var self=this;
+function $Domite(){return $globals.Domite||(typeof Domite=="undefined"?nil:Domite)}
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+var $1;
+$1=$recv($Domite())._isDomNode_(self["@jsObject"]);
+if($core.assert($1)){
+$recv(aStream)._nextPutDomNode_(self["@jsObject"]);
+} else {
+$recv(aStream)._nextPut_(self);
+};
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"putOn:",{aStream:aStream},$globals.JSObjectProxy)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: ["aStream"],
+source: "putOn: aStream\x0a\x09(Domite isDomNode: jsObject)\x0a\x09\x09ifTrue: [ aStream nextPutDomNode: jsObject ]\x0a\x09\x09ifFalse: [ aStream nextPut: self ]",
+referencedClasses: ["Domite"],
+//>>excludeEnd("ide");
+messageSends: ["ifTrue:ifFalse:", "isDomNode:", "nextPutDomNode:", "nextPut:"]
+}),
+$globals.JSObjectProxy);
+
 $core.addMethod(
 $core.method({
 selector: "nextPutDomNode:",

+ 8 - 0
src/DOMite.st

@@ -231,6 +231,14 @@ isDomNode: anObject
 >
 ! !
 
+!JSObjectProxy methodsFor: '*DOMite'!
+
+putOn: aStream
+	(Domite isDomNode: jsObject)
+		ifTrue: [ aStream nextPutDomNode: jsObject ]
+		ifFalse: [ aStream nextPut: self ]
+! !
+
 !ProtoStream methodsFor: '*DOMite'!
 
 nextPutDomNode: aNode