Platform-Browser.js 9.9 KB

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