1 |
|
2 | define(function(require,exports,module) {
|
3 | var ls = require("../lib/ls");
|
4 | exports.eval = function(code,url) {
|
5 | return eval(ls._compile(code,url));
|
6 | };
|
7 | exports.run = function(code,url) {
|
8 | return Function(ls._compile(code,url))();
|
9 | };
|
10 | exports.load = function(url,callback) {
|
11 | var request = (window.XMLHttpRequest ?
|
12 | new XMLHttpRequest() :
|
13 | new ActiveXObject("Microsoft.XMLHTTP"));
|
14 | request.open("GET",url,true);
|
15 | (request.overrideMimeType ?
|
16 | request.overrideMimeType("text/plain") :
|
17 | undefined);
|
18 | request.onreadystatechange = function() {
|
19 | return ((request.readyState === 4) ?
|
20 | (((request.status === 0) || (request.status === 200)) ?
|
21 | callback(exports.run(request.responseText,url)) :
|
22 | callback("Could not load")) :
|
23 | undefined);
|
24 | };
|
25 | return request.send(null);
|
26 | };
|
27 | var runScripts = function() {
|
28 | var scripts = Array.prototype.filter.call(document.getElementsByTagName("script"),function(script) {
|
29 | return (script.type === "application/lispyscript");
|
30 | });
|
31 | var next = function() {
|
32 | return (scripts.length ?
|
33 | (function() {
|
34 | var script = scripts.shift();
|
35 | return (script.src ?
|
36 | exports.load(script.src,next) :
|
37 | next(exports.run(script.innerHTML)));
|
38 | })() :
|
39 | undefined);
|
40 | };
|
41 | return next();
|
42 | };
|
43 | return (((document.readyState === "complete") || (document.readyState === "interactive")) ?
|
44 | runScripts() :
|
45 | (window.addEventListener ?
|
46 | addEventListener("DOMContentLoaded",runScripts,false) :
|
47 | attachEvent("onload",runScripts)));
|
48 | });
|