DOMite.js 33 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040
  1. define("domite/DOMite", ["amber/boot", "amber_core/Kernel-Collections"], function($boot){
  2. var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;
  3. $core.addPackage('DOMite');
  4. $core.packages["DOMite"].innerEval = function (expr) { return eval(expr); };
  5. $core.packages["DOMite"].transport = {"type":"amd","amdNamespace":"domite"};
  6. $core.addClass('Domite', $globals.ProtoStream, ['element', 'reference'], 'DOMite');
  7. //>>excludeStart("ide", pragmas.excludeIdeData);
  8. $globals.Domite.comment="I am (hopefully thin) wrapper around the notion of \x22cursor in a page\x22.\x0aI represent a DOM node _and_ a point where\x0ato insert new content into it.\x0a\x0aSo I play both the role of a container that inserts\x0aas well as the role of an element being inserted.\x0a\x0aI inherit from `ProtoStream`.\x0a\x0aCreation API:\x0a\x0a - `Domite new` creates an insertion point at the bottom of `<body>`.\x0a - `Domite newStream` is unique way to create pieces of content. It creates an instance \x22floating in thin air\x22 (wrapper around DOM DocumentFragment) that can be filled with any contents and then inserted in a page.\x0a - `Domite fromElement: aDomElement` wraps an element and set the cursor to its end.\x0a\x0aCSS selector API:\x0a\x0a - `Domite at: aSelector` wraps an element found by `document.querySelector(aSelector)`.\x0a\x0aManipulation API:\x0a\x0a - `aDomite << obj` inserts obj at the insertion point.\x0a - `aDomite resetContents` deletes contents of the wrapped element.\x0a\x0aCursor moving API:\x0a\x0aTake this sample HTML, where `[n]` are just markers, not real content:\x0a\x0a```\x0a<body>\x0a <h1>header</h1>\x0a [4]<p>[2]Hello[1]world[3]</p>[5]\x0a <small>footer</small>\x0a</body>\x0a```\x0a\x0aIf `d` is a `Domite` representing `[1]`, then:\x0a\x0a - `d setToStart` would move `d` to be at `[2]`,\x0a - `d setToEnd` would move `d` to be at `[3]`,\x0a - `d setToBefore` would move `d` to be at `[4]`, and\x0a - `d setToAfter` would move `d` to be at `[5]`.\x0a\x0aIt is not presumed one would use `setToXxx`\x0ato actually move around in a single instance.\x0aIt is envisioned this API will be used mostly\x0ain combination with `copy`, like\x0a`afterMe := self copy setToAfter`.";
  9. //>>excludeEnd("ide");
  10. $core.addMethod(
  11. $core.method({
  12. selector: "=",
  13. protocol: 'comparing',
  14. fn: function (aDomite){
  15. var self=this;
  16. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  17. return $core.withContext(function($ctx1) {
  18. //>>excludeEnd("ctx");
  19. var $3,$2,$5,$4,$6,$1;
  20. $3=self._class();
  21. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  22. $ctx1.sendIdx["class"]=1;
  23. //>>excludeEnd("ctx");
  24. $2=$recv($3).__eq($recv(aDomite)._class());
  25. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  26. $ctx1.sendIdx["="]=1;
  27. //>>excludeEnd("ctx");
  28. $1=$recv($2)._and_((function(){
  29. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  30. return $core.withContext(function($ctx2) {
  31. //>>excludeEnd("ctx");
  32. $5=self._element();
  33. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  34. $ctx2.sendIdx["element"]=1;
  35. //>>excludeEnd("ctx");
  36. $4=$recv($5).__eq($recv(aDomite)._element());
  37. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  38. $ctx2.sendIdx["="]=2;
  39. //>>excludeEnd("ctx");
  40. return $recv($4)._and_((function(){
  41. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  42. return $core.withContext(function($ctx3) {
  43. //>>excludeEnd("ctx");
  44. $6=self._reference();
  45. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  46. $ctx3.sendIdx["reference"]=1;
  47. //>>excludeEnd("ctx");
  48. return $recv($6).__eq($recv(aDomite)._reference());
  49. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  50. }, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)});
  51. //>>excludeEnd("ctx");
  52. }));
  53. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  54. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  55. //>>excludeEnd("ctx");
  56. }));
  57. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  58. $ctx1.sendIdx["and:"]=1;
  59. //>>excludeEnd("ctx");
  60. return $1;
  61. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  62. }, function($ctx1) {$ctx1.fill(self,"=",{aDomite:aDomite},$globals.Domite)});
  63. //>>excludeEnd("ctx");
  64. },
  65. //>>excludeStart("ide", pragmas.excludeIdeData);
  66. args: ["aDomite"],
  67. source: "= aDomite\x0a\x09^ self class = aDomite class and: [\x0a\x09\x09self element = aDomite element and: [\x0a\x09\x09\x09self reference = aDomite reference ]]",
  68. referencedClasses: [],
  69. //>>excludeEnd("ide");
  70. messageSends: ["and:", "=", "class", "element", "reference"]
  71. }),
  72. $globals.Domite);
  73. $core.addMethod(
  74. $core.method({
  75. selector: "asJQuery",
  76. protocol: 'converting',
  77. fn: function (){
  78. var self=this;
  79. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  80. return $core.withContext(function($ctx1) {
  81. //>>excludeEnd("ctx");
  82. var $1;
  83. $1=$recv(self._element())._asJQuery();
  84. return $1;
  85. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  86. }, function($ctx1) {$ctx1.fill(self,"asJQuery",{},$globals.Domite)});
  87. //>>excludeEnd("ctx");
  88. },
  89. //>>excludeStart("ide", pragmas.excludeIdeData);
  90. args: [],
  91. source: "asJQuery\x0a\x09^ self element asJQuery",
  92. referencedClasses: [],
  93. //>>excludeEnd("ide");
  94. messageSends: ["asJQuery", "element"]
  95. }),
  96. $globals.Domite);
  97. $core.addMethod(
  98. $core.method({
  99. selector: "at:",
  100. protocol: 'accessing',
  101. fn: function (aString){
  102. var self=this;
  103. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  104. return $core.withContext(function($ctx1) {
  105. //>>excludeEnd("ctx");
  106. var $1;
  107. $1=$recv(self._class())._fromElement_($recv(self._element())._querySelector_(aString));
  108. return $1;
  109. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  110. }, function($ctx1) {$ctx1.fill(self,"at:",{aString:aString},$globals.Domite)});
  111. //>>excludeEnd("ctx");
  112. },
  113. //>>excludeStart("ide", pragmas.excludeIdeData);
  114. args: ["aString"],
  115. source: "at: aString\x0a\x09^ self class fromElement: (self element querySelector: aString)",
  116. referencedClasses: [],
  117. //>>excludeEnd("ide");
  118. messageSends: ["fromElement:", "class", "querySelector:", "element"]
  119. }),
  120. $globals.Domite);
  121. $core.addMethod(
  122. $core.method({
  123. selector: "atEnd",
  124. protocol: 'testing',
  125. fn: function (){
  126. var self=this;
  127. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  128. return $core.withContext(function($ctx1) {
  129. //>>excludeEnd("ctx");
  130. var $1;
  131. $1=$recv(self._reference())._isNil();
  132. return $1;
  133. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  134. }, function($ctx1) {$ctx1.fill(self,"atEnd",{},$globals.Domite)});
  135. //>>excludeEnd("ctx");
  136. },
  137. //>>excludeStart("ide", pragmas.excludeIdeData);
  138. args: [],
  139. source: "atEnd\x0a\x09^ self reference isNil",
  140. referencedClasses: [],
  141. //>>excludeEnd("ide");
  142. messageSends: ["isNil", "reference"]
  143. }),
  144. $globals.Domite);
  145. $core.addMethod(
  146. $core.method({
  147. selector: "atStart",
  148. protocol: 'testing',
  149. fn: function (){
  150. var self=this;
  151. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  152. return $core.withContext(function($ctx1) {
  153. //>>excludeEnd("ctx");
  154. var $1;
  155. $1=$recv(self._reference()).__eq($recv(self._element())._firstChild());
  156. return $1;
  157. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  158. }, function($ctx1) {$ctx1.fill(self,"atStart",{},$globals.Domite)});
  159. //>>excludeEnd("ctx");
  160. },
  161. //>>excludeStart("ide", pragmas.excludeIdeData);
  162. args: [],
  163. source: "atStart\x0a\x09^ self reference = self element firstChild",
  164. referencedClasses: [],
  165. //>>excludeEnd("ide");
  166. messageSends: ["=", "reference", "firstChild", "element"]
  167. }),
  168. $globals.Domite);
  169. $core.addMethod(
  170. $core.method({
  171. selector: "attrAt:",
  172. protocol: 'accessing',
  173. fn: function (aString){
  174. var self=this;
  175. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  176. return $core.withContext(function($ctx1) {
  177. //>>excludeEnd("ctx");
  178. var $1,$2;
  179. $1=$recv(self["@element"])._hasAttribute_(aString);
  180. if($core.assert($1)){
  181. $2=$recv(self["@element"])._getAttribute_(aString);
  182. return $2;
  183. } else {
  184. return nil;
  185. };
  186. return self;
  187. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  188. }, function($ctx1) {$ctx1.fill(self,"attrAt:",{aString:aString},$globals.Domite)});
  189. //>>excludeEnd("ctx");
  190. },
  191. //>>excludeStart("ide", pragmas.excludeIdeData);
  192. args: ["aString"],
  193. source: "attrAt: aString\x0a\x09(element hasAttribute: aString)\x0a\x09\x09ifTrue: [ ^ element getAttribute: aString ]\x0a\x09\x09ifFalse: [ ^ nil ]",
  194. referencedClasses: [],
  195. //>>excludeEnd("ide");
  196. messageSends: ["ifTrue:ifFalse:", "hasAttribute:", "getAttribute:"]
  197. }),
  198. $globals.Domite);
  199. $core.addMethod(
  200. $core.method({
  201. selector: "attrAt:put:",
  202. protocol: 'accessing',
  203. fn: function (aString,anotherString){
  204. var self=this;
  205. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  206. return $core.withContext(function($ctx1) {
  207. //>>excludeEnd("ctx");
  208. $recv(self["@element"])._setAttribute_to_(aString,anotherString);
  209. return self;
  210. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  211. }, function($ctx1) {$ctx1.fill(self,"attrAt:put:",{aString:aString,anotherString:anotherString},$globals.Domite)});
  212. //>>excludeEnd("ctx");
  213. },
  214. //>>excludeStart("ide", pragmas.excludeIdeData);
  215. args: ["aString", "anotherString"],
  216. source: "attrAt: aString put: anotherString\x0a\x09element setAttribute: aString to: anotherString",
  217. referencedClasses: [],
  218. //>>excludeEnd("ide");
  219. messageSends: ["setAttribute:to:"]
  220. }),
  221. $globals.Domite);
  222. $core.addMethod(
  223. $core.method({
  224. selector: "canSetToUpperLevel",
  225. protocol: 'testing',
  226. fn: function (){
  227. var self=this;
  228. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  229. return $core.withContext(function($ctx1) {
  230. //>>excludeEnd("ctx");
  231. var $1;
  232. $1=$recv($recv(self._element())._parentNode())._notNil();
  233. return $1;
  234. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  235. }, function($ctx1) {$ctx1.fill(self,"canSetToUpperLevel",{},$globals.Domite)});
  236. //>>excludeEnd("ctx");
  237. },
  238. //>>excludeStart("ide", pragmas.excludeIdeData);
  239. args: [],
  240. source: "canSetToUpperLevel\x0a\x09^ self element parentNode notNil",
  241. referencedClasses: [],
  242. //>>excludeEnd("ide");
  243. messageSends: ["notNil", "parentNode", "element"]
  244. }),
  245. $globals.Domite);
  246. $core.addMethod(
  247. $core.method({
  248. selector: "element",
  249. protocol: 'accessing',
  250. fn: function (){
  251. var self=this;
  252. var $1;
  253. $1=self["@element"];
  254. return $1;
  255. },
  256. //>>excludeStart("ide", pragmas.excludeIdeData);
  257. args: [],
  258. source: "element\x0a\x09^ element",
  259. referencedClasses: [],
  260. //>>excludeEnd("ide");
  261. messageSends: []
  262. }),
  263. $globals.Domite);
  264. $core.addMethod(
  265. $core.method({
  266. selector: "element:",
  267. protocol: 'accessing',
  268. fn: function (anObject){
  269. var self=this;
  270. self["@element"]=anObject;
  271. return self;
  272. },
  273. //>>excludeStart("ide", pragmas.excludeIdeData);
  274. args: ["anObject"],
  275. source: "element: anObject\x0a\x09element := anObject",
  276. referencedClasses: [],
  277. //>>excludeEnd("ide");
  278. messageSends: []
  279. }),
  280. $globals.Domite);
  281. $core.addMethod(
  282. $core.method({
  283. selector: "initialize",
  284. protocol: 'initialization',
  285. fn: function (){
  286. var self=this;
  287. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  288. return $core.withContext(function($ctx1) {
  289. //>>excludeEnd("ctx");
  290. (
  291. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  292. $ctx1.supercall = true,
  293. //>>excludeEnd("ctx");
  294. $globals.Domite.superclass.fn.prototype._initialize.apply($recv(self), []));
  295. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  296. $ctx1.supercall = false;
  297. //>>excludeEnd("ctx");;
  298. self["@element"]=$recv(document)._body();
  299. self["@reference"]=nil._asJSON();
  300. return self;
  301. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  302. }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.Domite)});
  303. //>>excludeEnd("ctx");
  304. },
  305. //>>excludeStart("ide", pragmas.excludeIdeData);
  306. args: [],
  307. source: "initialize\x0a\x09super initialize.\x0a\x09element := document body.\x0a\x09reference := nil asJSON",
  308. referencedClasses: [],
  309. //>>excludeEnd("ide");
  310. messageSends: ["initialize", "body", "asJSON"]
  311. }),
  312. $globals.Domite);
  313. $core.addMethod(
  314. $core.method({
  315. selector: "isInvalid",
  316. protocol: 'testing',
  317. fn: function (){
  318. var self=this;
  319. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  320. return $core.withContext(function($ctx1) {
  321. //>>excludeEnd("ctx");
  322. var $1;
  323. $1=$recv(self._element())._isNil();
  324. return $1;
  325. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  326. }, function($ctx1) {$ctx1.fill(self,"isInvalid",{},$globals.Domite)});
  327. //>>excludeEnd("ctx");
  328. },
  329. //>>excludeStart("ide", pragmas.excludeIdeData);
  330. args: [],
  331. source: "isInvalid\x0a\x09^ self element isNil",
  332. referencedClasses: [],
  333. //>>excludeEnd("ide");
  334. messageSends: ["isNil", "element"]
  335. }),
  336. $globals.Domite);
  337. $core.addMethod(
  338. $core.method({
  339. selector: "nextPut:",
  340. protocol: 'insertion',
  341. fn: function (anObject){
  342. var self=this;
  343. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  344. return $core.withContext(function($ctx1) {
  345. //>>excludeEnd("ctx");
  346. self._nextPutString_($recv(anObject)._printString());
  347. return self;
  348. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  349. }, function($ctx1) {$ctx1.fill(self,"nextPut:",{anObject:anObject},$globals.Domite)});
  350. //>>excludeEnd("ctx");
  351. },
  352. //>>excludeStart("ide", pragmas.excludeIdeData);
  353. args: ["anObject"],
  354. source: "nextPut: anObject\x0a\x09self nextPutString: anObject printString",
  355. referencedClasses: [],
  356. //>>excludeEnd("ide");
  357. messageSends: ["nextPutString:", "printString"]
  358. }),
  359. $globals.Domite);
  360. $core.addMethod(
  361. $core.method({
  362. selector: "nextPutDomNode:",
  363. protocol: 'insertion',
  364. fn: function (aDomElement){
  365. var self=this;
  366. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  367. return $core.withContext(function($ctx1) {
  368. //>>excludeEnd("ctx");
  369. $recv(self._element())._insertBefore_reference_(aDomElement,self._reference());
  370. return self;
  371. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  372. }, function($ctx1) {$ctx1.fill(self,"nextPutDomNode:",{aDomElement:aDomElement},$globals.Domite)});
  373. //>>excludeEnd("ctx");
  374. },
  375. //>>excludeStart("ide", pragmas.excludeIdeData);
  376. args: ["aDomElement"],
  377. source: "nextPutDomNode: aDomElement\x0a\x09self element\x0a\x09\x09insertBefore: aDomElement\x0a\x09\x09reference: self reference",
  378. referencedClasses: [],
  379. //>>excludeEnd("ide");
  380. messageSends: ["insertBefore:reference:", "element", "reference"]
  381. }),
  382. $globals.Domite);
  383. $core.addMethod(
  384. $core.method({
  385. selector: "nextPutJSObject:",
  386. protocol: 'insertion',
  387. fn: function (aJSObject){
  388. var self=this;
  389. function $Domite(){return $globals.Domite||(typeof Domite=="undefined"?nil:Domite)}
  390. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  391. return $core.withContext(function($ctx1) {
  392. //>>excludeEnd("ctx");
  393. var $1;
  394. $1=$recv($Domite())._isDomNode_(aJSObject);
  395. if($core.assert($1)){
  396. self._nextPutDomNode_(aJSObject);
  397. } else {
  398. self._nextPut_(aJSObject);
  399. };
  400. return self;
  401. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  402. }, function($ctx1) {$ctx1.fill(self,"nextPutJSObject:",{aJSObject:aJSObject},$globals.Domite)});
  403. //>>excludeEnd("ctx");
  404. },
  405. //>>excludeStart("ide", pragmas.excludeIdeData);
  406. args: ["aJSObject"],
  407. source: "nextPutJSObject: aJSObject\x0a\x09(Domite isDomNode: aJSObject)\x0a\x09\x09ifTrue: [ self nextPutDomNode: aJSObject ]\x0a\x09\x09ifFalse: [ self nextPut: aJSObject ]",
  408. referencedClasses: ["Domite"],
  409. //>>excludeEnd("ide");
  410. messageSends: ["ifTrue:ifFalse:", "isDomNode:", "nextPutDomNode:", "nextPut:"]
  411. }),
  412. $globals.Domite);
  413. $core.addMethod(
  414. $core.method({
  415. selector: "nextPutString:",
  416. protocol: 'insertion',
  417. fn: function (aString){
  418. var self=this;
  419. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  420. return $core.withContext(function($ctx1) {
  421. //>>excludeEnd("ctx");
  422. self._nextPutDomNode_($recv(document)._createTextNode_($recv(aString)._asString()));
  423. return self;
  424. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  425. }, function($ctx1) {$ctx1.fill(self,"nextPutString:",{aString:aString},$globals.Domite)});
  426. //>>excludeEnd("ctx");
  427. },
  428. //>>excludeStart("ide", pragmas.excludeIdeData);
  429. args: ["aString"],
  430. source: "nextPutString: aString\x0a\x09self nextPutDomNode: (\x0a\x09\x09document createTextNode: aString asString )",
  431. referencedClasses: [],
  432. //>>excludeEnd("ide");
  433. messageSends: ["nextPutDomNode:", "createTextNode:", "asString"]
  434. }),
  435. $globals.Domite);
  436. $core.addMethod(
  437. $core.method({
  438. selector: "off:unbind:",
  439. protocol: 'events',
  440. fn: function (aString,aBlock){
  441. var self=this;
  442. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  443. return $core.withContext(function($ctx1) {
  444. //>>excludeEnd("ctx");
  445. $recv(self._element())._removeEventListener_block_useCapture_(aString,aBlock,false);
  446. return self;
  447. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  448. }, function($ctx1) {$ctx1.fill(self,"off:unbind:",{aString:aString,aBlock:aBlock},$globals.Domite)});
  449. //>>excludeEnd("ctx");
  450. },
  451. //>>excludeStart("ide", pragmas.excludeIdeData);
  452. args: ["aString", "aBlock"],
  453. source: "off: aString unbind: aBlock\x0a\x09self element removeEventListener: aString block: aBlock useCapture: false",
  454. referencedClasses: [],
  455. //>>excludeEnd("ide");
  456. messageSends: ["removeEventListener:block:useCapture:", "element"]
  457. }),
  458. $globals.Domite);
  459. $core.addMethod(
  460. $core.method({
  461. selector: "on:bind:",
  462. protocol: 'events',
  463. fn: function (aString,aBlock){
  464. var self=this;
  465. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  466. return $core.withContext(function($ctx1) {
  467. //>>excludeEnd("ctx");
  468. $recv(self._element())._addEventListener_block_useCapture_(aString,aBlock,false);
  469. return self;
  470. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  471. }, function($ctx1) {$ctx1.fill(self,"on:bind:",{aString:aString,aBlock:aBlock},$globals.Domite)});
  472. //>>excludeEnd("ctx");
  473. },
  474. //>>excludeStart("ide", pragmas.excludeIdeData);
  475. args: ["aString", "aBlock"],
  476. source: "on: aString bind: aBlock\x0a\x09self element addEventListener: aString block: aBlock useCapture: false",
  477. referencedClasses: [],
  478. //>>excludeEnd("ide");
  479. messageSends: ["addEventListener:block:useCapture:", "element"]
  480. }),
  481. $globals.Domite);
  482. $core.addMethod(
  483. $core.method({
  484. selector: "propAt:",
  485. protocol: 'accessing',
  486. fn: function (aString){
  487. var self=this;
  488. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  489. return $core.withContext(function($ctx1) {
  490. //>>excludeEnd("ctx");
  491. var $1;
  492. $1=$recv(self["@element"])._at_(aString);
  493. return $1;
  494. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  495. }, function($ctx1) {$ctx1.fill(self,"propAt:",{aString:aString},$globals.Domite)});
  496. //>>excludeEnd("ctx");
  497. },
  498. //>>excludeStart("ide", pragmas.excludeIdeData);
  499. args: ["aString"],
  500. source: "propAt: aString\x0a\x09^ element at: aString",
  501. referencedClasses: [],
  502. //>>excludeEnd("ide");
  503. messageSends: ["at:"]
  504. }),
  505. $globals.Domite);
  506. $core.addMethod(
  507. $core.method({
  508. selector: "propAt:put:",
  509. protocol: 'accessing',
  510. fn: function (aString,anObject){
  511. var self=this;
  512. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  513. return $core.withContext(function($ctx1) {
  514. //>>excludeEnd("ctx");
  515. var $1;
  516. $1=$recv(self["@element"])._at_put_(aString,anObject);
  517. return $1;
  518. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  519. }, function($ctx1) {$ctx1.fill(self,"propAt:put:",{aString:aString,anObject:anObject},$globals.Domite)});
  520. //>>excludeEnd("ctx");
  521. },
  522. //>>excludeStart("ide", pragmas.excludeIdeData);
  523. args: ["aString", "anObject"],
  524. source: "propAt: aString put: anObject\x0a\x09^ element at: aString put: anObject",
  525. referencedClasses: [],
  526. //>>excludeEnd("ide");
  527. messageSends: ["at:put:"]
  528. }),
  529. $globals.Domite);
  530. $core.addMethod(
  531. $core.method({
  532. selector: "putOn:",
  533. protocol: 'streaming',
  534. fn: function (aStream){
  535. var self=this;
  536. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  537. return $core.withContext(function($ctx1) {
  538. //>>excludeEnd("ctx");
  539. $recv(aStream)._nextPutDomNode_(self._element());
  540. return self;
  541. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  542. }, function($ctx1) {$ctx1.fill(self,"putOn:",{aStream:aStream},$globals.Domite)});
  543. //>>excludeEnd("ctx");
  544. },
  545. //>>excludeStart("ide", pragmas.excludeIdeData);
  546. args: ["aStream"],
  547. source: "putOn: aStream\x0a\x09aStream nextPutDomNode: self element",
  548. referencedClasses: [],
  549. //>>excludeEnd("ide");
  550. messageSends: ["nextPutDomNode:", "element"]
  551. }),
  552. $globals.Domite);
  553. $core.addMethod(
  554. $core.method({
  555. selector: "reference",
  556. protocol: 'accessing',
  557. fn: function (){
  558. var self=this;
  559. var $1;
  560. $1=self["@reference"];
  561. return $1;
  562. },
  563. //>>excludeStart("ide", pragmas.excludeIdeData);
  564. args: [],
  565. source: "reference\x0a\x09^ reference",
  566. referencedClasses: [],
  567. //>>excludeEnd("ide");
  568. messageSends: []
  569. }),
  570. $globals.Domite);
  571. $core.addMethod(
  572. $core.method({
  573. selector: "reference:",
  574. protocol: 'accessing',
  575. fn: function (anObject){
  576. var self=this;
  577. self["@reference"]=anObject;
  578. return self;
  579. },
  580. //>>excludeStart("ide", pragmas.excludeIdeData);
  581. args: ["anObject"],
  582. source: "reference: anObject\x0a\x09reference := anObject",
  583. referencedClasses: [],
  584. //>>excludeEnd("ide");
  585. messageSends: []
  586. }),
  587. $globals.Domite);
  588. $core.addMethod(
  589. $core.method({
  590. selector: "reset",
  591. protocol: 'positioning',
  592. fn: function (){
  593. var self=this;
  594. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  595. return $core.withContext(function($ctx1) {
  596. //>>excludeEnd("ctx");
  597. self._reference_($recv(self._element())._firstChild());
  598. return self;
  599. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  600. }, function($ctx1) {$ctx1.fill(self,"reset",{},$globals.Domite)});
  601. //>>excludeEnd("ctx");
  602. },
  603. //>>excludeStart("ide", pragmas.excludeIdeData);
  604. args: [],
  605. source: "reset\x0a\x09self reference: self element firstChild",
  606. referencedClasses: [],
  607. //>>excludeEnd("ide");
  608. messageSends: ["reference:", "firstChild", "element"]
  609. }),
  610. $globals.Domite);
  611. $core.addMethod(
  612. $core.method({
  613. selector: "resetContents",
  614. protocol: 'deletion',
  615. fn: function (){
  616. var self=this;
  617. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  618. return $core.withContext(function($ctx1) {
  619. //>>excludeEnd("ctx");
  620. var element = self['@element'], child;
  621. while (child = element.firstChild) element.removeChild(child);
  622. self['@reference'] = null;;
  623. return self;
  624. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  625. }, function($ctx1) {$ctx1.fill(self,"resetContents",{},$globals.Domite)});
  626. //>>excludeEnd("ctx");
  627. },
  628. //>>excludeStart("ide", pragmas.excludeIdeData);
  629. args: [],
  630. source: "resetContents\x0a<\x0a\x09var element = self['@element'], child;\x0a\x09while (child = element.firstChild) element.removeChild(child);\x0a\x09self['@reference'] = null;\x0a>",
  631. referencedClasses: [],
  632. //>>excludeEnd("ide");
  633. messageSends: []
  634. }),
  635. $globals.Domite);
  636. $core.addMethod(
  637. $core.method({
  638. selector: "setToAfter",
  639. protocol: 'positioning',
  640. fn: function (){
  641. var self=this;
  642. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  643. return $core.withContext(function($ctx1) {
  644. //>>excludeEnd("ctx");
  645. var $2,$1,$3;
  646. $2=self._element();
  647. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  648. $ctx1.sendIdx["element"]=1;
  649. //>>excludeEnd("ctx");
  650. $1=$recv($2)._nextSibling();
  651. self._reference_($1);
  652. $3=self._element_($recv(self._element())._parentNode());
  653. return self;
  654. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  655. }, function($ctx1) {$ctx1.fill(self,"setToAfter",{},$globals.Domite)});
  656. //>>excludeEnd("ctx");
  657. },
  658. //>>excludeStart("ide", pragmas.excludeIdeData);
  659. args: [],
  660. source: "setToAfter\x0a\x09self\x0a\x09\x09reference: self element nextSibling;\x0a\x09\x09element: self element parentNode",
  661. referencedClasses: [],
  662. //>>excludeEnd("ide");
  663. messageSends: ["reference:", "nextSibling", "element", "element:", "parentNode"]
  664. }),
  665. $globals.Domite);
  666. $core.addMethod(
  667. $core.method({
  668. selector: "setToBefore",
  669. protocol: 'positioning',
  670. fn: function (){
  671. var self=this;
  672. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  673. return $core.withContext(function($ctx1) {
  674. //>>excludeEnd("ctx");
  675. var $1,$2;
  676. $1=self._element();
  677. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  678. $ctx1.sendIdx["element"]=1;
  679. //>>excludeEnd("ctx");
  680. self._reference_($1);
  681. $2=self._element_($recv(self._element())._parentNode());
  682. return self;
  683. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  684. }, function($ctx1) {$ctx1.fill(self,"setToBefore",{},$globals.Domite)});
  685. //>>excludeEnd("ctx");
  686. },
  687. //>>excludeStart("ide", pragmas.excludeIdeData);
  688. args: [],
  689. source: "setToBefore\x0a\x09self\x0a\x09\x09reference: self element;\x0a\x09\x09element: self element parentNode",
  690. referencedClasses: [],
  691. //>>excludeEnd("ide");
  692. messageSends: ["reference:", "element", "element:", "parentNode"]
  693. }),
  694. $globals.Domite);
  695. $core.addMethod(
  696. $core.method({
  697. selector: "setToEnd",
  698. protocol: 'positioning',
  699. fn: function (){
  700. var self=this;
  701. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  702. return $core.withContext(function($ctx1) {
  703. //>>excludeEnd("ctx");
  704. self._reference_(nil._asJSON());
  705. return self;
  706. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  707. }, function($ctx1) {$ctx1.fill(self,"setToEnd",{},$globals.Domite)});
  708. //>>excludeEnd("ctx");
  709. },
  710. //>>excludeStart("ide", pragmas.excludeIdeData);
  711. args: [],
  712. source: "setToEnd\x0a\x09self reference: nil asJSON \x22null\x22",
  713. referencedClasses: [],
  714. //>>excludeEnd("ide");
  715. messageSends: ["reference:", "asJSON"]
  716. }),
  717. $globals.Domite);
  718. $core.addMethod(
  719. $core.method({
  720. selector: "setToNext",
  721. protocol: 'positioning',
  722. fn: function (){
  723. var self=this;
  724. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  725. return $core.withContext(function($ctx1) {
  726. //>>excludeEnd("ctx");
  727. var $1;
  728. $1=self._atEnd();
  729. if(!$core.assert($1)){
  730. self._reference_($recv(self._reference())._nextSibling());
  731. };
  732. return self;
  733. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  734. }, function($ctx1) {$ctx1.fill(self,"setToNext",{},$globals.Domite)});
  735. //>>excludeEnd("ctx");
  736. },
  737. //>>excludeStart("ide", pragmas.excludeIdeData);
  738. args: [],
  739. source: "setToNext\x0a\x09self atEnd ifFalse: [\x0a\x09\x09self reference: self reference nextSibling ]",
  740. referencedClasses: [],
  741. //>>excludeEnd("ide");
  742. messageSends: ["ifFalse:", "atEnd", "reference:", "nextSibling", "reference"]
  743. }),
  744. $globals.Domite);
  745. $core.addMethod(
  746. $core.method({
  747. selector: "setToPrev",
  748. protocol: 'positioning',
  749. fn: function (){
  750. var self=this;
  751. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  752. return $core.withContext(function($ctx1) {
  753. //>>excludeEnd("ctx");
  754. var $1,$3,$2,$receiver;
  755. $1=self._atStart();
  756. if(!$core.assert($1)){
  757. $3=self._reference();
  758. if(($receiver = $3) == null || $receiver.isNil){
  759. $2=$recv(self._element())._lastChild();
  760. } else {
  761. var ref;
  762. ref=$receiver;
  763. $2=$recv(ref)._previousSibling();
  764. };
  765. self._reference_($2);
  766. };
  767. return self;
  768. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  769. }, function($ctx1) {$ctx1.fill(self,"setToPrev",{},$globals.Domite)});
  770. //>>excludeEnd("ctx");
  771. },
  772. //>>excludeStart("ide", pragmas.excludeIdeData);
  773. args: [],
  774. source: "setToPrev\x0a\x09self atStart ifFalse: [\x0a\x09\x09self reference: (self reference\x0a\x09\x09\x09ifNil: [ self element lastChild ]\x0a\x09\x09\x09ifNotNil: [ :ref | ref previousSibling ])]",
  775. referencedClasses: [],
  776. //>>excludeEnd("ide");
  777. messageSends: ["ifFalse:", "atStart", "reference:", "ifNil:ifNotNil:", "reference", "lastChild", "element", "previousSibling"]
  778. }),
  779. $globals.Domite);
  780. $core.addMethod(
  781. $core.method({
  782. selector: "at:",
  783. protocol: 'instance creation',
  784. fn: function (aString){
  785. var self=this;
  786. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  787. return $core.withContext(function($ctx1) {
  788. //>>excludeEnd("ctx");
  789. var $1;
  790. $1=self._fromElement_($recv(document)._querySelector_(aString));
  791. return $1;
  792. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  793. }, function($ctx1) {$ctx1.fill(self,"at:",{aString:aString},$globals.Domite.klass)});
  794. //>>excludeEnd("ctx");
  795. },
  796. //>>excludeStart("ide", pragmas.excludeIdeData);
  797. args: ["aString"],
  798. source: "at: aString\x0a\x09^ self fromElement: (document querySelector: aString)",
  799. referencedClasses: [],
  800. //>>excludeEnd("ide");
  801. messageSends: ["fromElement:", "querySelector:"]
  802. }),
  803. $globals.Domite.klass);
  804. $core.addMethod(
  805. $core.method({
  806. selector: "fromElement:",
  807. protocol: 'instance creation',
  808. fn: function (aDomElement){
  809. var self=this;
  810. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  811. return $core.withContext(function($ctx1) {
  812. //>>excludeEnd("ctx");
  813. var $1,$3,$4,$2,$receiver;
  814. if(($receiver = aDomElement) == null || $receiver.isNil){
  815. aDomElement;
  816. } else {
  817. $1=self._isDomNode_(aDomElement);
  818. if(!$core.assert($1)){
  819. self._error_($recv(self._name()).__comma(": Need a DOM node"));
  820. };
  821. };
  822. $3=self._new();
  823. $recv($3)._element_(aDomElement);
  824. $4=$recv($3)._yourself();
  825. $2=$4;
  826. return $2;
  827. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  828. }, function($ctx1) {$ctx1.fill(self,"fromElement:",{aDomElement:aDomElement},$globals.Domite.klass)});
  829. //>>excludeEnd("ctx");
  830. },
  831. //>>excludeStart("ide", pragmas.excludeIdeData);
  832. args: ["aDomElement"],
  833. source: "fromElement: aDomElement\x0a\x09aDomElement ifNotNil: [\x0a\x09\x09(self isDomNode: aDomElement) ifFalse: [\x0a\x09\x09\x09self error: self name, ': Need a DOM node' ]].\x0a\x09^ self new\x0a\x09\x09element: aDomElement;\x0a\x09\x09yourself",
  834. referencedClasses: [],
  835. //>>excludeEnd("ide");
  836. messageSends: ["ifNotNil:", "ifFalse:", "isDomNode:", "error:", ",", "name", "element:", "new", "yourself"]
  837. }),
  838. $globals.Domite.klass);
  839. $core.addMethod(
  840. $core.method({
  841. selector: "fromElement:cursorBefore:",
  842. protocol: 'instance creation',
  843. fn: function (aDomElement,anotherDomElement){
  844. var self=this;
  845. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  846. return $core.withContext(function($ctx1) {
  847. //>>excludeEnd("ctx");
  848. var $1,$3,$4,$2,$receiver;
  849. if(($receiver = aDomElement) == null || $receiver.isNil){
  850. aDomElement;
  851. } else {
  852. $1=self._isDomNode_(aDomElement);
  853. if(!$core.assert($1)){
  854. self._error_($recv(self._name()).__comma(": Need a DOM node"));
  855. };
  856. };
  857. $3=self._new();
  858. $recv($3)._element_(aDomElement);
  859. $recv($3)._referenceElement_(anotherDomElement);
  860. $4=$recv($3)._yourself();
  861. $2=$4;
  862. return $2;
  863. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  864. }, function($ctx1) {$ctx1.fill(self,"fromElement:cursorBefore:",{aDomElement:aDomElement,anotherDomElement:anotherDomElement},$globals.Domite.klass)});
  865. //>>excludeEnd("ctx");
  866. },
  867. //>>excludeStart("ide", pragmas.excludeIdeData);
  868. args: ["aDomElement", "anotherDomElement"],
  869. source: "fromElement: aDomElement cursorBefore: anotherDomElement\x0a\x09aDomElement ifNotNil: [\x0a\x09\x09(self isDomNode: aDomElement) ifFalse: [\x0a\x09\x09\x09self error: self name, ': Need a DOM node' ]].\x0a\x09^ self new\x0a\x09\x09element: aDomElement;\x0a\x09\x09referenceElement: anotherDomElement;\x0a\x09\x09yourself",
  870. referencedClasses: [],
  871. //>>excludeEnd("ide");
  872. messageSends: ["ifNotNil:", "ifFalse:", "isDomNode:", "error:", ",", "name", "element:", "new", "referenceElement:", "yourself"]
  873. }),
  874. $globals.Domite.klass);
  875. $core.addMethod(
  876. $core.method({
  877. selector: "isDomNode:",
  878. protocol: 'testing',
  879. fn: function (anObject){
  880. var self=this;
  881. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  882. return $core.withContext(function($ctx1) {
  883. //>>excludeEnd("ctx");
  884. return anObject.nodeType > 0 &&
  885. Object.prototype.toString.call(anObject) !== "[object Object]";
  886. return self;
  887. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  888. }, function($ctx1) {$ctx1.fill(self,"isDomNode:",{anObject:anObject},$globals.Domite.klass)});
  889. //>>excludeEnd("ctx");
  890. },
  891. //>>excludeStart("ide", pragmas.excludeIdeData);
  892. args: ["anObject"],
  893. source: "isDomNode: anObject\x0a<\x0a\x09return anObject.nodeType >> 0 &&\x0a\x09\x09Object.prototype.toString.call(anObject) !== \x22[object Object]\x22\x0a>",
  894. referencedClasses: [],
  895. //>>excludeEnd("ide");
  896. messageSends: []
  897. }),
  898. $globals.Domite.klass);
  899. $core.addMethod(
  900. $core.method({
  901. selector: "newElement:",
  902. protocol: 'instance creation',
  903. fn: function (aString){
  904. var self=this;
  905. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  906. return $core.withContext(function($ctx1) {
  907. //>>excludeEnd("ctx");
  908. var $1;
  909. $1=self._fromElement_($recv(document)._createElement_(aString));
  910. return $1;
  911. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  912. }, function($ctx1) {$ctx1.fill(self,"newElement:",{aString:aString},$globals.Domite.klass)});
  913. //>>excludeEnd("ctx");
  914. },
  915. //>>excludeStart("ide", pragmas.excludeIdeData);
  916. args: ["aString"],
  917. source: "newElement: aString\x0a\x09^ self fromElement: (document createElement: aString)",
  918. referencedClasses: [],
  919. //>>excludeEnd("ide");
  920. messageSends: ["fromElement:", "createElement:"]
  921. }),
  922. $globals.Domite.klass);
  923. $core.addMethod(
  924. $core.method({
  925. selector: "newElement:xmlns:",
  926. protocol: 'instance creation',
  927. fn: function (aString,anotherString){
  928. var self=this;
  929. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  930. return $core.withContext(function($ctx1) {
  931. //>>excludeEnd("ctx");
  932. var $1;
  933. $1=self._fromElement_($recv(document)._createElementNS_tagName_(anotherString,aString));
  934. return $1;
  935. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  936. }, function($ctx1) {$ctx1.fill(self,"newElement:xmlns:",{aString:aString,anotherString:anotherString},$globals.Domite.klass)});
  937. //>>excludeEnd("ctx");
  938. },
  939. //>>excludeStart("ide", pragmas.excludeIdeData);
  940. args: ["aString", "anotherString"],
  941. source: "newElement: aString xmlns: anotherString \x0a\x0a\x09^ self fromElement: (document createElementNS: anotherString tagName: aString)",
  942. referencedClasses: [],
  943. //>>excludeEnd("ide");
  944. messageSends: ["fromElement:", "createElementNS:tagName:"]
  945. }),
  946. $globals.Domite.klass);
  947. $core.addMethod(
  948. $core.method({
  949. selector: "newStream",
  950. protocol: 'instance creation',
  951. fn: function (){
  952. var self=this;
  953. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  954. return $core.withContext(function($ctx1) {
  955. //>>excludeEnd("ctx");
  956. var $1;
  957. $1=self._fromElement_($recv(document)._createDocumentFragment());
  958. return $1;
  959. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  960. }, function($ctx1) {$ctx1.fill(self,"newStream",{},$globals.Domite.klass)});
  961. //>>excludeEnd("ctx");
  962. },
  963. //>>excludeStart("ide", pragmas.excludeIdeData);
  964. args: [],
  965. source: "newStream\x0a\x09^ self fromElement: document createDocumentFragment",
  966. referencedClasses: [],
  967. //>>excludeEnd("ide");
  968. messageSends: ["fromElement:", "createDocumentFragment"]
  969. }),
  970. $globals.Domite.klass);
  971. $core.addMethod(
  972. $core.method({
  973. selector: "nextPutDomNode:",
  974. protocol: '*DOMite',
  975. fn: function (aNode){
  976. var self=this;
  977. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  978. return $core.withContext(function($ctx1) {
  979. //>>excludeEnd("ctx");
  980. self._nextPut_(aNode);
  981. return self;
  982. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  983. }, function($ctx1) {$ctx1.fill(self,"nextPutDomNode:",{aNode:aNode},$globals.ProtoStream)});
  984. //>>excludeEnd("ctx");
  985. },
  986. //>>excludeStart("ide", pragmas.excludeIdeData);
  987. args: ["aNode"],
  988. source: "nextPutDomNode: aNode\x0a\x09self nextPut: aNode",
  989. referencedClasses: [],
  990. //>>excludeEnd("ide");
  991. messageSends: ["nextPut:"]
  992. }),
  993. $globals.ProtoStream);
  994. });