envjs 0.1.7 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. data/.jslintrbrc +29 -0
  2. data/.project +17 -0
  3. data/CHANGELOG.rdoc +3 -0
  4. data/DTD/xhtml-lat1.ent +196 -0
  5. data/DTD/xhtml-special.ent +80 -0
  6. data/DTD/xhtml-symbol.ent +237 -0
  7. data/DTD/xhtml.soc +14 -0
  8. data/DTD/xhtml1-frameset.dtd +1235 -0
  9. data/DTD/xhtml1-strict.dtd +978 -0
  10. data/DTD/xhtml1-transitional.dtd +1201 -0
  11. data/DTD/xhtml1.dcl +192 -0
  12. data/Makefile +7 -0
  13. data/Manifest.txt +287 -0
  14. data/{README → README.rdoc} +24 -3
  15. data/Rakefile +196 -0
  16. data/Wakefile +24 -0
  17. data/build.properties +9 -0
  18. data/build.xml +247 -0
  19. data/gm/jquery.js +6002 -0
  20. data/gm/mainx.js +2648 -0
  21. data/gm/sensx.js +135 -0
  22. data/gm/t.js +6 -0
  23. data/gm/x.html +76 -0
  24. data/htmlparser/BrowserTreeBuilder.java +456 -0
  25. data/htmlparser/README +34 -0
  26. data/htmlparser/build.sh +38 -0
  27. data/jsl/jsl +0 -0
  28. data/jsl/jsl.default.conf +129 -0
  29. data/jsl/jsl.exe +0 -0
  30. data/lib/envjs.rb +2 -0
  31. data/lib/envjs/env.js +22 -3
  32. data/lib/envjs/event_loop.js +2 -0
  33. data/lib/envjs/static.js +155 -21
  34. data/licenses/GPL-LICENSE.txt +278 -0
  35. data/licenses/MIT-LICENSE.txt +20 -0
  36. data/src/base64.js +80 -0
  37. data/src/build.js +6 -0
  38. data/src/cruft/bad.html +24 -0
  39. data/src/cruft/dom.js +606 -0
  40. data/src/cruft/element.js +297 -0
  41. data/src/cruft/good.html +30 -0
  42. data/src/cruft/good.js +32 -0
  43. data/src/cruft/internal.js +81 -0
  44. data/src/cruft/parser.js +458 -0
  45. data/src/css/properties.js +293 -0
  46. data/src/css/rule.js +22 -0
  47. data/src/css/sizzle.js +717 -0
  48. data/src/css/stylesheet.js +52 -0
  49. data/src/dom/attr.js +55 -0
  50. data/src/dom/cdatasection.js +31 -0
  51. data/src/dom/characterdata.js +119 -0
  52. data/src/dom/comment.js +30 -0
  53. data/src/dom/doctype.js +9 -0
  54. data/src/dom/document.js +553 -0
  55. data/src/dom/dom.js +134 -0
  56. data/src/dom/element.js +217 -0
  57. data/src/dom/entities.js +273 -0
  58. data/src/dom/exception.js +28 -0
  59. data/src/dom/fragment.js +37 -0
  60. data/src/dom/implementation.js +602 -0
  61. data/src/dom/instruction.js +51 -0
  62. data/src/dom/namednodemap.js +374 -0
  63. data/src/dom/namespace.js +50 -0
  64. data/src/dom/node.js +618 -0
  65. data/src/dom/nodelist.js +195 -0
  66. data/src/dom/parser.js +1207 -0
  67. data/src/dom/text.js +73 -0
  68. data/src/event/event.js +39 -0
  69. data/src/event/mouseevent.js +4 -0
  70. data/src/event/uievent.js +8 -0
  71. data/src/html/a.js +110 -0
  72. data/src/html/anchor.js +80 -0
  73. data/src/html/area.js +57 -0
  74. data/src/html/base.js +26 -0
  75. data/src/html/blockquote-q.js +19 -0
  76. data/src/html/body.js +19 -0
  77. data/src/html/button.js +21 -0
  78. data/src/html/canvas.js +14 -0
  79. data/src/html/col-colgroup.js +49 -0
  80. data/src/html/collection.js +72 -0
  81. data/src/html/cookie.js +151 -0
  82. data/src/html/del-ins.js +25 -0
  83. data/src/html/div.js +28 -0
  84. data/src/html/document.js +359 -0
  85. data/src/html/element.js +380 -0
  86. data/src/html/fieldset.js +19 -0
  87. data/src/html/form.js +484 -0
  88. data/src/html/frame.js +89 -0
  89. data/src/html/frameset.js +25 -0
  90. data/src/html/head.js +44 -0
  91. data/src/html/html.js +0 -0
  92. data/src/html/htmlparser.js +340 -0
  93. data/src/html/iframe.js +26 -0
  94. data/src/html/image.js +0 -0
  95. data/src/html/img.js +62 -0
  96. data/src/html/input-elements.js +307 -0
  97. data/src/html/input.js +65 -0
  98. data/src/html/label.js +26 -0
  99. data/src/html/legend.js +19 -0
  100. data/src/html/link.js +82 -0
  101. data/src/html/map.js +22 -0
  102. data/src/html/meta.js +37 -0
  103. data/src/html/object.js +89 -0
  104. data/src/html/optgroup.js +25 -0
  105. data/src/html/option.js +97 -0
  106. data/src/html/param.js +38 -0
  107. data/src/html/script.js +122 -0
  108. data/src/html/select.js +129 -0
  109. data/src/html/style.js +31 -0
  110. data/src/html/table.js +199 -0
  111. data/src/html/tbody-thead-tfoot.js +91 -0
  112. data/src/html/td-th.js +18 -0
  113. data/src/html/textarea.js +25 -0
  114. data/src/html/title.js +20 -0
  115. data/src/html/tr.js +114 -0
  116. data/src/intro.js +141 -0
  117. data/src/outro.js +70 -0
  118. data/src/parser/html5.detailed.js +10762 -0
  119. data/src/parser/html5.min.js +503 -0
  120. data/src/parser/html5.pretty.js +10815 -0
  121. data/src/parser/intro.js +42 -0
  122. data/src/parser/outro.js +9 -0
  123. data/src/platform/core.js +323 -0
  124. data/src/platform/johnson.js +479 -0
  125. data/src/platform/rhino.js +327 -0
  126. data/src/platform/static/intro.js +41 -0
  127. data/src/platform/static/outro.js +30 -0
  128. data/src/profile/aop.js +238 -0
  129. data/src/profile/profile.js +402 -0
  130. data/src/serializer/xml.js +21 -0
  131. data/src/svg/animatedstring.js +25 -0
  132. data/src/svg/document.js +25 -0
  133. data/src/svg/element.js +22 -0
  134. data/src/svg/locatable.js +17 -0
  135. data/src/svg/rect.js +18 -0
  136. data/src/svg/rectelement.js +24 -0
  137. data/src/svg/stylable.js +49 -0
  138. data/src/svg/svgelement.js +22 -0
  139. data/src/svg/transformable.js +15 -0
  140. data/src/window/css.js +15 -0
  141. data/src/window/dialog.js +16 -0
  142. data/src/window/document.js +28 -0
  143. data/src/window/event.js +262 -0
  144. data/src/window/history.js +62 -0
  145. data/src/window/location.js +138 -0
  146. data/src/window/navigator.js +48 -0
  147. data/src/window/screen.js +53 -0
  148. data/src/window/timer.js +21 -0
  149. data/src/window/window.js +284 -0
  150. data/src/window/xhr.js +127 -0
  151. data/src/xpath/expression.js +49 -0
  152. data/src/xpath/implementation.js +2482 -0
  153. data/src/xpath/result.js +67 -0
  154. data/src/xpath/util.js +551 -0
  155. data/src/xpath/xmltoken.js +149 -0
  156. data/src/xslt/COPYING +34 -0
  157. data/src/xslt/ajaxslt-0.8.1/AUTHORS +1 -0
  158. data/src/xslt/ajaxslt-0.8.1/ChangeLog +136 -0
  159. data/src/xslt/ajaxslt-0.8.1/Makefile +49 -0
  160. data/src/xslt/ajaxslt-0.8.1/README +102 -0
  161. data/src/xslt/ajaxslt-0.8.1/TODO +15 -0
  162. data/src/xslt/ajaxslt-0.8.1/dom.js +566 -0
  163. data/src/xslt/ajaxslt-0.8.1/dom_unittest.html +24 -0
  164. data/src/xslt/ajaxslt-0.8.1/dom_unittest.js +131 -0
  165. data/src/xslt/ajaxslt-0.8.1/simplelog.js +79 -0
  166. data/src/xslt/ajaxslt-0.8.1/test/xpath.html +18 -0
  167. data/src/xslt/ajaxslt-0.8.1/test/xpath_script.js +45 -0
  168. data/src/xslt/ajaxslt-0.8.1/test/xslt.html +58 -0
  169. data/src/xslt/ajaxslt-0.8.1/test/xslt_script.js +33 -0
  170. data/src/xslt/ajaxslt-0.8.1/unittestsuite.html +26 -0
  171. data/src/xslt/ajaxslt-0.8.1/xmltoken.js +149 -0
  172. data/src/xslt/ajaxslt-0.8.1/xmltoken_unittest.html +18 -0
  173. data/src/xslt/ajaxslt-0.8.1/xmltoken_unittest.js +811 -0
  174. data/src/xslt/ajaxslt-0.8.1/xpath_unittest.html +39 -0
  175. data/src/xslt/ajaxslt-0.8.1/xpath_unittest.js +557 -0
  176. data/src/xslt/ajaxslt-0.8.1/xpathdebug.js +234 -0
  177. data/src/xslt/ajaxslt-0.8.1/xslt_unittest.html +138 -0
  178. data/src/xslt/ajaxslt-0.8.1/xslt_unittest.js +68 -0
  179. data/src/xslt/implementation.js +625 -0
  180. data/src/xslt/processor.js +37 -0
  181. data/src/xslt/util.js +449 -0
  182. data/test/foo.html +8 -0
  183. data/test/foo.js +40 -0
  184. data/test/jquery.js +6002 -0
  185. data/test/x.js +1 -0
  186. data/test/y.js +1 -0
  187. metadata +245 -14
@@ -0,0 +1,91 @@
1
+ $debug("Defining HTMLTableSectionElement");
2
+ /*
3
+ * HTMLxElement - DOM Level 2
4
+ * - Contributed by Steven Wood
5
+ */
6
+ var HTMLTableSectionElement = function(ownerDocument) {
7
+ this.HTMLElement = HTMLElement;
8
+ this.HTMLElement(ownerDocument);
9
+ };
10
+ HTMLTableSectionElement.prototype = new HTMLElement;
11
+ __extend__(HTMLTableSectionElement.prototype, {
12
+
13
+ appendChild : function (child) {
14
+
15
+ // disallow nesting of these elements.
16
+ if (child.tagName.match(/TBODY|TFOOT|THEAD/)) {
17
+ return this.parentNode.appendChild(child);
18
+ } else {
19
+ return DOMNode.prototype.appendChild.apply(this, arguments);
20
+ }
21
+
22
+ },
23
+
24
+ get align() {
25
+ return this.getAttribute("align");
26
+ },
27
+
28
+ get ch() {
29
+ return this.getAttribute("ch");
30
+ },
31
+
32
+ set ch(ch) {
33
+ this.setAttribute("ch", ch);
34
+ },
35
+
36
+ // ch gets or sets the alignment character for cells in a column.
37
+ set chOff(chOff) {
38
+ this.setAttribute("chOff", chOff);
39
+ },
40
+
41
+ get chOff(chOff) {
42
+ return this.getAttribute("chOff");
43
+ },
44
+
45
+ get vAlign () {
46
+ return this.getAttribute("vAlign");
47
+ },
48
+
49
+ get rows() {
50
+ return new HTMLCollection(this.getElementsByTagName("tr"));
51
+ },
52
+
53
+ insertRow : function (idx) {
54
+ if (idx === undefined) {
55
+ throw new Error("Index omitted in call to HTMLTableSectionElement.insertRow ");
56
+ }
57
+
58
+ var numRows = this.rows.length,
59
+ node = null;
60
+
61
+ if (idx > numRows) {
62
+ throw new Error("Index > rows.length in call to HTMLTableSectionElement.insertRow");
63
+ }
64
+
65
+ var row = this.ownerDocument.createElement("tr");
66
+ // If index is -1 or equal to the number of rows,
67
+ // the row is appended as the last row. If index is omitted
68
+ // or greater than the number of rows, an error will result
69
+ if (idx === -1 || idx === numRows) {
70
+ this.appendChild(row);
71
+ } else {
72
+ node = this.firstChild;
73
+
74
+ for (var i=0; i<idx; i++) {
75
+ node = node.nextSibling;
76
+ }
77
+ }
78
+
79
+ this.insertBefore(row, node);
80
+
81
+ return row;
82
+ },
83
+
84
+ deleteRow : function (idx) {
85
+ var elem = this.rows[idx];
86
+ this.removeChild(elem);
87
+ }
88
+
89
+ });
90
+
91
+ // $w.HTMLTableSectionElement = HTMLTableSectionElement;
data/src/html/td-th.js ADDED
@@ -0,0 +1,18 @@
1
+ $debug("Defining HTMLTableCellElement");
2
+ /*
3
+ * HTMLTableCellElement - DOM Level 2
4
+ * Implementation Provided by Steven Wood
5
+ */
6
+ var HTMLTableCellElement = function(ownerDocument) {
7
+ this.HTMLElement = HTMLElement;
8
+ this.HTMLElement(ownerDocument);
9
+ };
10
+ HTMLTableCellElement.prototype = new HTMLElement;
11
+ __extend__(HTMLTableCellElement.prototype, {
12
+
13
+
14
+ // TODO :
15
+
16
+ });
17
+
18
+ // $w.HTMLTableCellElement = HTMLTableCellElement;
@@ -0,0 +1,25 @@
1
+ $debug("Defining HTMLTextAreaElement");
2
+ /*
3
+ * HTMLTextAreaElement - DOM Level 2
4
+ */
5
+ var HTMLTextAreaElement = function(ownerDocument) {
6
+ this.HTMLInputAreaCommon = HTMLInputAreaCommon;
7
+ this.HTMLInputAreaCommon(ownerDocument);
8
+ };
9
+ HTMLTextAreaElement.prototype = new HTMLInputAreaCommon;
10
+ __extend__(HTMLTextAreaElement.prototype, {
11
+ get cols(){
12
+ return this.getAttribute('cols');
13
+ },
14
+ set cols(value){
15
+ this.setAttribute('cols', value);
16
+ },
17
+ get rows(){
18
+ return this.getAttribute('rows');
19
+ },
20
+ set rows(value){
21
+ this.setAttribute('rows', value);
22
+ }
23
+ });
24
+
25
+ // $w.HTMLTextAreaElement = HTMLTextAreaElement;
data/src/html/title.js ADDED
@@ -0,0 +1,20 @@
1
+ $debug("Defining HTMLTitleElement");
2
+ /*
3
+ * HTMLTitleElement - DOM Level 2
4
+ */
5
+ var HTMLTitleElement = function(ownerDocument) {
6
+ this.HTMLElement = HTMLElement;
7
+ this.HTMLElement(ownerDocument);
8
+ };
9
+ HTMLTitleElement.prototype = new HTMLElement;
10
+ __extend__(HTMLTitleElement.prototype, {
11
+ get text() {
12
+ return this.innerText;
13
+ },
14
+
15
+ set text(titleStr) {
16
+ this.innerHTML = titleStr; // if paranoid, would error on embedded HTML
17
+ }
18
+ });
19
+
20
+ // $w.HTMLTitleElement = HTMLTitleElement;
data/src/html/tr.js ADDED
@@ -0,0 +1,114 @@
1
+ $debug("Defining HTMLTableRowElement");
2
+ /*
3
+ * HTMLRowElement - DOM Level 2
4
+ * Implementation Provided by Steven Wood
5
+ */
6
+ var HTMLTableRowElement = function(ownerDocument) {
7
+ this.HTMLElement = HTMLElement;
8
+ this.HTMLElement(ownerDocument);
9
+
10
+ };
11
+ HTMLTableRowElement.prototype = new HTMLElement;
12
+ __extend__(HTMLTableRowElement.prototype, {
13
+
14
+ appendChild : function (child) {
15
+
16
+ var retVal = DOMNode.prototype.appendChild.apply(this, arguments);
17
+ retVal.cellIndex = this.cells.length -1;
18
+
19
+ return retVal;
20
+ },
21
+ // align gets or sets the horizontal alignment of data within cells of the row.
22
+ get align() {
23
+ return this.getAttribute("align");
24
+ },
25
+
26
+ get bgColor() {
27
+ return this.getAttribute("bgcolor");
28
+ },
29
+
30
+ get cells() {
31
+ var nl = this.getElementsByTagName("td");
32
+ return new HTMLCollection(nl);
33
+ },
34
+
35
+ get ch() {
36
+ return this.getAttribute("ch");
37
+ },
38
+
39
+ set ch(ch) {
40
+ this.setAttribute("ch", ch);
41
+ },
42
+
43
+ // ch gets or sets the alignment character for cells in a column.
44
+ set chOff(chOff) {
45
+ this.setAttribute("chOff", chOff);
46
+ },
47
+
48
+ get chOff(chOff) {
49
+ return this.getAttribute("chOff");
50
+ },
51
+
52
+ get rowIndex() {
53
+ var nl = this.parentNode.childNodes;
54
+ for (var i=0; i<nl.length; i++) {
55
+ if (nl[i] === this) {
56
+ return i;
57
+ }
58
+ }
59
+ },
60
+
61
+ get sectionRowIndex() {
62
+ var nl = this.parentNode.getElementsByTagName(this.tagName);
63
+ for (var i=0; i<nl.length; i++) {
64
+ if (nl[i] === this) {
65
+ return i;
66
+ }
67
+ }
68
+ },
69
+
70
+ get vAlign () {
71
+ return this.getAttribute("vAlign");
72
+ },
73
+
74
+ insertCell : function (idx) {
75
+ if (idx === undefined) {
76
+ throw new Error("Index omitted in call to HTMLTableRow.insertCell");
77
+ }
78
+
79
+ var numCells = this.cells.length,
80
+ node = null;
81
+
82
+ if (idx > numCells) {
83
+ throw new Error("Index > rows.length in call to HTMLTableRow.insertCell");
84
+ }
85
+
86
+ var cell = this.ownerDocument.createElement("td");
87
+
88
+ if (idx === -1 || idx === numCells) {
89
+ this.appendChild(cell);
90
+ } else {
91
+
92
+
93
+ node = this.firstChild;
94
+
95
+ for (var i=0; i<idx; i++) {
96
+ node = node.nextSibling;
97
+ }
98
+ }
99
+
100
+ this.insertBefore(cell, node);
101
+ cell.cellIndex = idx;
102
+
103
+ return cell;
104
+ },
105
+
106
+
107
+ deleteCell : function (idx) {
108
+ var elem = this.cells[idx];
109
+ this.removeChild(elem);
110
+ }
111
+
112
+ });
113
+
114
+ // $w.HTMLTableRowElement = HTMLTableRowElement;
data/src/intro.js ADDED
@@ -0,0 +1,141 @@
1
+ (function(){
2
+
3
+ try {
4
+
5
+ (function(){
6
+ for(var symbol in $master["static"]) {
7
+ if(symbol.match(/^(DOM|HTML|XPath)/)){
8
+ // $master.print("import",symbol);
9
+ if(typeof $master["static"][symbol] === "undefined") {
10
+ throw new Error("Cannot import " + symbol + ": undefined");
11
+ }
12
+ this[symbol] = $master["static"][symbol];
13
+ }
14
+ }
15
+ var symbols = [ "Event" ];
16
+ for(var i in symbols) {
17
+ symbol = symbols[i];
18
+ // $master.print("import",symbol);
19
+ if(typeof $master["static"][symbol] === "undefined") {
20
+ throw new Error("Cannot import " + symbol + ": undefined");
21
+ }
22
+ this[symbol] = $master["static"][symbol];
23
+ }
24
+ }());
25
+
26
+ var $env = (function(){
27
+
28
+ var $env = {};
29
+ var $master;
30
+
31
+ var $public = (function(){
32
+ var $public = {};
33
+ return $public;
34
+ }());
35
+
36
+ var $platform = function(master){
37
+
38
+ var $platform = {};
39
+
40
+ $platform.new_split_global_outer = function() {
41
+ return $master.new_split_global_outer();
42
+ };
43
+
44
+ $platform.new_split_global_inner = function(proxy) {
45
+ return $master.new_split_global_inner(proxy,undefined);
46
+ };
47
+
48
+ $platform.init_window = function(inner) {
49
+ var index = master.next_window_index()+0;
50
+ inner.toString = function(){
51
+ return "[object Window "+index+"]";
52
+ // return "[object Window]";
53
+ };
54
+ };
55
+
56
+ return $platform;
57
+ };
58
+
59
+ $env.new_window = function(proxy){
60
+ var swap_script_window; // = ( $master.first_script_window.window === proxy );
61
+ if(!proxy){
62
+ proxy = $platform.new_split_global_outer();
63
+ }
64
+ $master.proxy = proxy;
65
+ // try{throw new Error("huh?");}catch(e){print("here",e.stack);}
66
+ // var now = Date.now();
67
+ var new_window = $platform.new_split_global_inner(proxy,undefined);
68
+ // print("nw "+(Date.now()-now));
69
+ new_window.$inner = new_window;
70
+ if(swap_script_window) {
71
+ $master.first_script_window = new_window;
72
+ }
73
+ new_window.$master = $master;
74
+ for(var index in $master.symbols) {
75
+ var symbol = $master.symbols[index];
76
+ new_window[symbol] = $master[symbol];
77
+ }
78
+ return [ proxy, new_window ];
79
+ };
80
+
81
+ $env.init = function(){
82
+ $env.$master = $master = this.$master;
83
+ $platform = $platform($master);
84
+ var $inner = this.$inner;
85
+ var options = this.$options;
86
+ // delete $inner.$master;
87
+ delete $inner.$platform;
88
+ delete $inner.$options;
89
+ $inner.$envx = $env;
90
+ $env.init_window.call($inner,$inner,options);
91
+ };
92
+
93
+ $env.init_window = function(inner,options){
94
+ var $inner = inner;
95
+ var $w = this;
96
+
97
+ inner.load = function(){
98
+ for(var i = 0; i < arguments.length; i++){
99
+ var f = arguments[i];
100
+ $master.load(f,inner);
101
+ }
102
+ };
103
+
104
+ inner.evaluate = function(string){
105
+ return $master.evaluate.call(string,inner);
106
+ };
107
+
108
+ options = options || {};
109
+
110
+ var copy_opts = function copy_opts(options){
111
+ var new_opts = {};
112
+ var undef;
113
+ for(var xxx in options){
114
+ if (typeof options[xxx] === "undefined") {
115
+ new_opts[xxx] = undef;
116
+ } else if (options[xxx] === null) {
117
+ new_opts[xxx] = null;
118
+ } else if (typeof options[xxx] == "object" && options[xxx]+"" === "[object split_global]") {
119
+ new_opts[xxx] = options[xxx];
120
+ } else if (typeof options[xxx] == "object" && ((options[xxx]+"").match(/^\[object Window[ 0-9]*\]$/))) {
121
+ new_opts[xxx] = options[xxx];
122
+ } else if (typeof options[xxx] == "string") {
123
+ new_opts[xxx] = options[xxx]+"";
124
+ } else if (typeof options[xxx] == "object" && (options[xxx].constructor+"").match(/^function Object\(\)/) ) {
125
+ new_opts[xxx] = copy_opts(options[xxx]);
126
+ } else {
127
+ throw new Error("copy "+xxx+ " "+typeof options[xxx] + " " +options[xxx] + " " + options[xxx].constructor);
128
+ }
129
+ }
130
+ return new_opts;
131
+ };
132
+
133
+ options = copy_opts(options);
134
+
135
+ $platform.init_window($w);
136
+
137
+ var print = $master.print;
138
+
139
+ if (!this.window) {
140
+ this.window = this;
141
+ }
data/src/outro.js ADDED
@@ -0,0 +1,70 @@
1
+ // faux-intro ...
2
+ // (function(){
3
+ // (function(){
4
+ // function(){
5
+
6
+ // User accesible interface ...
7
+ var Envjs = $w.Envjs = $env.Envjs = function(){
8
+ if(arguments.length === 2){
9
+ for ( var i in arguments[1] ) {
10
+ var g = arguments[1].__lookupGetter__(i),
11
+ s = arguments[1].__lookupSetter__(i);
12
+ if ( g || s ) {
13
+ if ( g ) $env.__defineGetter__(i, g);
14
+ if ( s ) $env.__defineSetter__(i, s);
15
+ } else
16
+ $env[i] = arguments[1][i];
17
+ }
18
+ }
19
+ if (arguments[0] != null && arguments[0] != "")
20
+ window.location = arguments[0];
21
+ };
22
+ Envjs.$env = $env;
23
+ Envjs.wait = $env.wait;
24
+ Envjs.interpreter = window.whichInterpreter;
25
+ Envjs.evaluate = $env.$master.evaluate;
26
+
27
+ // $w.__loadAWindowsDocument__(options.url || "about:blank");
28
+
29
+ (function(){
30
+ var fns = [];
31
+ for(var key in $master["static"]) {
32
+ if(key.match(/^envjs_init_\d+$/)){
33
+ fns.push(key);
34
+ }
35
+ }
36
+ fns.sort();
37
+ var nu = this.__nu__ = {};
38
+ nu.base = '';
39
+ nu.metaProps = {};
40
+ for(var i in fns) {
41
+ // print(fns[i]);
42
+ // print($master["static"][fns[i]]);
43
+ $master["static"][fns[i]](this,this.document);
44
+ }
45
+ }());
46
+
47
+ $env.load(options.url || "about:blank", options.xhr);
48
+ };
49
+
50
+ return $env;
51
+
52
+ })(); // close function definition begun in 'intro.js'
53
+
54
+ // Initial window setup
55
+ var init = $env.init;
56
+ init();
57
+
58
+ } catch(e) {
59
+ // $warn("Exception during load: "+e);
60
+ throw e;
61
+ }
62
+
63
+ })();
64
+
65
+ // Local Variables:
66
+ // espresso-indent-level:4
67
+ // c-basic-offset:4
68
+ // tab-width:4
69
+ // mode:auto-revert
70
+ // End: