Platform-Browser.js 10.0 KB

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