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

Cleaner solution based on 0.14.12 nextPutJSObject:

Herbert Vojčík преди 9 години
родител
ревизия
897a624674
променени са 3 файла, в които са добавени 39 реда и са изтрити 41 реда
  1. 1 1
      bower.json
  2. 32 32
      src/DOMite.js
  3. 6 8
      src/DOMite.st

+ 1 - 1
bower.json

@@ -27,7 +27,7 @@
     ],
     "private": false,
     "dependencies": {
-        "amber": ">=0.14.11"
+        "amber": ">=0.14.12"
     },
     "devDependencies": {
         "amber-ide-starter-dialog": "^0.1.0",

+ 32 - 32
src/DOMite.js

@@ -1,4 +1,4 @@
-define("domite/DOMite", ["amber/boot", "amber_core/Kernel-Collections", "amber_core/Kernel-Infrastructure"], function($boot){
+define("domite/DOMite", ["amber/boot", "amber_core/Kernel-Collections"], 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); };
@@ -372,6 +372,37 @@ messageSends: ["insertBefore:reference:", "element", "reference"]
 }),
 $globals.Domite);
 
+$core.addMethod(
+$core.method({
+selector: "nextPutJSObject:",
+protocol: 'insertion',
+fn: function (aJSObject){
+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_(aJSObject);
+if($core.assert($1)){
+self._nextPutDomNode_(aJSObject);
+} else {
+self._nextPut_(aJSObject);
+};
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"nextPutJSObject:",{aJSObject:aJSObject},$globals.Domite)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: ["aJSObject"],
+source: "nextPutJSObject: aJSObject\x0a\x09(Domite isDomNode: aJSObject)\x0a\x09\x09ifTrue: [ self nextPutDomNode: aJSObject ]\x0a\x09\x09ifFalse: [ self nextPut: aJSObject ]",
+referencedClasses: ["Domite"],
+//>>excludeEnd("ide");
+messageSends: ["ifTrue:ifFalse:", "isDomNode:", "nextPutDomNode:", "nextPut:"]
+}),
+$globals.Domite);
+
 $core.addMethod(
 $core.method({
 selector: "nextPutString:",
@@ -868,37 +899,6 @@ 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:",

+ 6 - 8
src/DOMite.st

@@ -138,6 +138,12 @@ nextPutDomNode: aDomElement
 		reference: self reference
 !
 
+nextPutJSObject: aJSObject
+	(Domite isDomNode: aJSObject)
+		ifTrue: [ self nextPutDomNode: aJSObject ]
+		ifFalse: [ self nextPut: aJSObject ]
+!
+
 nextPutString: aString
 	self nextPutDomNode: (
 		document createTextNode: aString asString )
@@ -231,14 +237,6 @@ isDomNode: anObject
 >
 ! !
 
-!JSObjectProxy methodsFor: '*DOMite'!
-
-putOn: aStream
-	(Domite isDomNode: jsObject)
-		ifTrue: [ aStream nextPutDomNode: jsObject ]
-		ifFalse: [ aStream nextPut: self ]
-! !
-
 !ProtoStream methodsFor: '*DOMite'!
 
 nextPutDomNode: aNode