Platform-Browser.js 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. define("amber_core/Platform-Browser", ["amber/boot", "amber_core/Kernel-Objects"], function($boot){"use strict";
  2. var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;
  3. $core.addPackage('Platform-Browser');
  4. $core.packages["Platform-Browser"].innerEval = function (expr) { return eval(expr); };
  5. $core.packages["Platform-Browser"].transport = {"type":"amd","amdNamespace":"amber_core"};
  6. $core.addClass('BrowserPlatform', $globals.Object, [], 'Platform-Browser');
  7. //>>excludeStart("ide", pragmas.excludeIdeData);
  8. $globals.BrowserPlatform.comment="I am `Platform` service implementation for browser.";
  9. //>>excludeEnd("ide");
  10. $core.addMethod(
  11. $core.method({
  12. selector: "globals",
  13. protocol: 'accessing',
  14. fn: function (){
  15. var self=this;
  16. var $1;
  17. $1=window;
  18. return $1;
  19. },
  20. //>>excludeStart("ide", pragmas.excludeIdeData);
  21. args: [],
  22. source: "globals\x0a\x09^ window",
  23. referencedClasses: [],
  24. //>>excludeEnd("ide");
  25. messageSends: []
  26. }),
  27. $globals.BrowserPlatform);
  28. $core.addMethod(
  29. $core.method({
  30. selector: "newXhr",
  31. protocol: 'accessing',
  32. fn: function (){
  33. var self=this;
  34. function $XMLHttpRequest(){return $globals.XMLHttpRequest||(typeof XMLHttpRequest=="undefined"?nil:XMLHttpRequest)}
  35. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  36. return $core.withContext(function($ctx1) {
  37. //>>excludeEnd("ctx");
  38. var $1,$receiver;
  39. if(($receiver = $XMLHttpRequest()) == null || $receiver.isNil){
  40. self._error_("XMLHttpRequest not available.");
  41. } else {
  42. $1=$recv($XMLHttpRequest())._new();
  43. return $1;
  44. };
  45. return self;
  46. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  47. }, function($ctx1) {$ctx1.fill(self,"newXhr",{},$globals.BrowserPlatform)});
  48. //>>excludeEnd("ctx");
  49. },
  50. //>>excludeStart("ide", pragmas.excludeIdeData);
  51. args: [],
  52. source: "newXhr\x0a\x09XMLHttpRequest\x0a\x09\x09ifNotNil: [ ^ XMLHttpRequest new ]\x0a\x09\x09ifNil: [ self error: 'XMLHttpRequest not available.' ]",
  53. referencedClasses: ["XMLHttpRequest"],
  54. //>>excludeEnd("ide");
  55. messageSends: ["ifNotNil:ifNil:", "new", "error:"]
  56. }),
  57. $globals.BrowserPlatform);
  58. $core.addMethod(
  59. $core.method({
  60. selector: "initialize",
  61. protocol: 'testing',
  62. fn: function (){
  63. var self=this;
  64. function $Platform(){return $globals.Platform||(typeof Platform=="undefined"?nil:Platform)}
  65. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  66. return $core.withContext(function($ctx1) {
  67. //>>excludeEnd("ctx");
  68. var $1;
  69. $1=self._isFeasible();
  70. if($core.assert($1)){
  71. $recv($Platform())._registerIfNone_(self._new());
  72. };
  73. return self;
  74. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  75. }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.BrowserPlatform.klass)});
  76. //>>excludeEnd("ctx");
  77. },
  78. //>>excludeStart("ide", pragmas.excludeIdeData);
  79. args: [],
  80. source: "initialize\x0a\x09self isFeasible ifTrue: [ Platform registerIfNone: self new ]",
  81. referencedClasses: ["Platform"],
  82. //>>excludeEnd("ide");
  83. messageSends: ["ifTrue:", "isFeasible", "registerIfNone:", "new"]
  84. }),
  85. $globals.BrowserPlatform.klass);
  86. $core.addMethod(
  87. $core.method({
  88. selector: "isFeasible",
  89. protocol: 'testing',
  90. fn: function (){
  91. var self=this;
  92. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  93. return $core.withContext(function($ctx1) {
  94. //>>excludeEnd("ctx");
  95. return typeof window !== "undefined";
  96. return self;
  97. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  98. }, function($ctx1) {$ctx1.fill(self,"isFeasible",{},$globals.BrowserPlatform.klass)});
  99. //>>excludeEnd("ctx");
  100. },
  101. //>>excludeStart("ide", pragmas.excludeIdeData);
  102. args: [],
  103. source: "isFeasible\x0a<return typeof window !== \x22undefined\x22>",
  104. referencedClasses: [],
  105. //>>excludeEnd("ide");
  106. messageSends: []
  107. }),
  108. $globals.BrowserPlatform.klass);
  109. $core.addClass('BrowserTerminal', $globals.Object, [], 'Platform-Browser');
  110. //>>excludeStart("ide", pragmas.excludeIdeData);
  111. $globals.BrowserTerminal.comment="I am `Terminal` service implementation for browser.";
  112. //>>excludeEnd("ide");
  113. $core.addMethod(
  114. $core.method({
  115. selector: "alert:",
  116. protocol: 'actions',
  117. fn: function (aString){
  118. var self=this;
  119. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  120. return $core.withContext(function($ctx1) {
  121. //>>excludeEnd("ctx");
  122. var $1;
  123. $1=$recv(window)._alert_(aString);
  124. return $1;
  125. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  126. }, function($ctx1) {$ctx1.fill(self,"alert:",{aString:aString},$globals.BrowserTerminal)});
  127. //>>excludeEnd("ctx");
  128. },
  129. //>>excludeStart("ide", pragmas.excludeIdeData);
  130. args: ["aString"],
  131. source: "alert: aString\x0a\x09^ window alert: aString",
  132. referencedClasses: [],
  133. //>>excludeEnd("ide");
  134. messageSends: ["alert:"]
  135. }),
  136. $globals.BrowserTerminal);
  137. $core.addMethod(
  138. $core.method({
  139. selector: "confirm:",
  140. protocol: 'actions',
  141. fn: function (aString){
  142. var self=this;
  143. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  144. return $core.withContext(function($ctx1) {
  145. //>>excludeEnd("ctx");
  146. var $1;
  147. $1=$recv(window)._confirm_(aString);
  148. return $1;
  149. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  150. }, function($ctx1) {$ctx1.fill(self,"confirm:",{aString:aString},$globals.BrowserTerminal)});
  151. //>>excludeEnd("ctx");
  152. },
  153. //>>excludeStart("ide", pragmas.excludeIdeData);
  154. args: ["aString"],
  155. source: "confirm: aString\x0a\x09^ window confirm: aString",
  156. referencedClasses: [],
  157. //>>excludeEnd("ide");
  158. messageSends: ["confirm:"]
  159. }),
  160. $globals.BrowserTerminal);
  161. $core.addMethod(
  162. $core.method({
  163. selector: "prompt:",
  164. protocol: 'actions',
  165. fn: function (aString){
  166. var self=this;
  167. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  168. return $core.withContext(function($ctx1) {
  169. //>>excludeEnd("ctx");
  170. var $1;
  171. $1=$recv(window)._prompt_(aString);
  172. return $1;
  173. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  174. }, function($ctx1) {$ctx1.fill(self,"prompt:",{aString:aString},$globals.BrowserTerminal)});
  175. //>>excludeEnd("ctx");
  176. },
  177. //>>excludeStart("ide", pragmas.excludeIdeData);
  178. args: ["aString"],
  179. source: "prompt: aString\x0a\x09^ window prompt: aString",
  180. referencedClasses: [],
  181. //>>excludeEnd("ide");
  182. messageSends: ["prompt:"]
  183. }),
  184. $globals.BrowserTerminal);
  185. $core.addMethod(
  186. $core.method({
  187. selector: "prompt:default:",
  188. protocol: 'actions',
  189. fn: function (aString,defaultString){
  190. var self=this;
  191. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  192. return $core.withContext(function($ctx1) {
  193. //>>excludeEnd("ctx");
  194. var $1;
  195. $1=$recv(window)._prompt_default_(aString,defaultString);
  196. return $1;
  197. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  198. }, function($ctx1) {$ctx1.fill(self,"prompt:default:",{aString:aString,defaultString:defaultString},$globals.BrowserTerminal)});
  199. //>>excludeEnd("ctx");
  200. },
  201. //>>excludeStart("ide", pragmas.excludeIdeData);
  202. args: ["aString", "defaultString"],
  203. source: "prompt: aString default: defaultString\x0a\x09^ window prompt: aString default: defaultString",
  204. referencedClasses: [],
  205. //>>excludeEnd("ide");
  206. messageSends: ["prompt:default:"]
  207. }),
  208. $globals.BrowserTerminal);
  209. $core.addMethod(
  210. $core.method({
  211. selector: "initialize",
  212. protocol: 'testing',
  213. fn: function (){
  214. var self=this;
  215. function $Terminal(){return $globals.Terminal||(typeof Terminal=="undefined"?nil:Terminal)}
  216. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  217. return $core.withContext(function($ctx1) {
  218. //>>excludeEnd("ctx");
  219. var $1;
  220. $1=self._isFeasible();
  221. if($core.assert($1)){
  222. $recv($Terminal())._registerIfNone_(self._new());
  223. };
  224. return self;
  225. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  226. }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.BrowserTerminal.klass)});
  227. //>>excludeEnd("ctx");
  228. },
  229. //>>excludeStart("ide", pragmas.excludeIdeData);
  230. args: [],
  231. source: "initialize\x0a\x09self isFeasible ifTrue: [ Terminal registerIfNone: self new ]",
  232. referencedClasses: ["Terminal"],
  233. //>>excludeEnd("ide");
  234. messageSends: ["ifTrue:", "isFeasible", "registerIfNone:", "new"]
  235. }),
  236. $globals.BrowserTerminal.klass);
  237. $core.addMethod(
  238. $core.method({
  239. selector: "isFeasible",
  240. protocol: 'testing',
  241. fn: function (){
  242. var self=this;
  243. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  244. return $core.withContext(function($ctx1) {
  245. //>>excludeEnd("ctx");
  246. return typeof window !== "undefined";
  247. return self;
  248. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  249. }, function($ctx1) {$ctx1.fill(self,"isFeasible",{},$globals.BrowserTerminal.klass)});
  250. //>>excludeEnd("ctx");
  251. },
  252. //>>excludeStart("ide", pragmas.excludeIdeData);
  253. args: [],
  254. source: "isFeasible\x0a<return typeof window !== \x22undefined\x22>",
  255. referencedClasses: [],
  256. //>>excludeEnd("ide");
  257. messageSends: []
  258. }),
  259. $globals.BrowserTerminal.klass);
  260. $core.addMethod(
  261. $core.method({
  262. selector: "postMessageTo:",
  263. protocol: '*Platform-Browser',
  264. fn: function (aFrame){
  265. var self=this;
  266. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  267. return $core.withContext(function($ctx1) {
  268. //>>excludeEnd("ctx");
  269. var $1;
  270. $1=self._postMessageTo_origin_(aFrame,"*");
  271. return $1;
  272. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  273. }, function($ctx1) {$ctx1.fill(self,"postMessageTo:",{aFrame:aFrame},$globals.Object)});
  274. //>>excludeEnd("ctx");
  275. },
  276. //>>excludeStart("ide", pragmas.excludeIdeData);
  277. args: ["aFrame"],
  278. source: "postMessageTo: aFrame\x0a^ self postMessageTo: aFrame origin: '*'",
  279. referencedClasses: [],
  280. //>>excludeEnd("ide");
  281. messageSends: ["postMessageTo:origin:"]
  282. }),
  283. $globals.Object);
  284. $core.addMethod(
  285. $core.method({
  286. selector: "postMessageTo:origin:",
  287. protocol: '*Platform-Browser',
  288. fn: function (aFrame,aString){
  289. var self=this;
  290. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  291. return $core.withContext(function($ctx1) {
  292. //>>excludeEnd("ctx");
  293. return aFrame.postMessage(self, aString);
  294. return self;
  295. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  296. }, function($ctx1) {$ctx1.fill(self,"postMessageTo:origin:",{aFrame:aFrame,aString:aString},$globals.Object)});
  297. //>>excludeEnd("ctx");
  298. },
  299. //>>excludeStart("ide", pragmas.excludeIdeData);
  300. args: ["aFrame", "aString"],
  301. source: "postMessageTo: aFrame origin: aString\x0a<return aFrame.postMessage(self, aString)>",
  302. referencedClasses: [],
  303. //>>excludeEnd("ide");
  304. messageSends: []
  305. }),
  306. $globals.Object);
  307. });