envjs 0.1.7 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.jslintrbrc +29 -0
- data/.project +17 -0
- data/CHANGELOG.rdoc +3 -0
- data/DTD/xhtml-lat1.ent +196 -0
- data/DTD/xhtml-special.ent +80 -0
- data/DTD/xhtml-symbol.ent +237 -0
- data/DTD/xhtml.soc +14 -0
- data/DTD/xhtml1-frameset.dtd +1235 -0
- data/DTD/xhtml1-strict.dtd +978 -0
- data/DTD/xhtml1-transitional.dtd +1201 -0
- data/DTD/xhtml1.dcl +192 -0
- data/Makefile +7 -0
- data/Manifest.txt +287 -0
- data/{README → README.rdoc} +24 -3
- data/Rakefile +196 -0
- data/Wakefile +24 -0
- data/build.properties +9 -0
- data/build.xml +247 -0
- data/gm/jquery.js +6002 -0
- data/gm/mainx.js +2648 -0
- data/gm/sensx.js +135 -0
- data/gm/t.js +6 -0
- data/gm/x.html +76 -0
- data/htmlparser/BrowserTreeBuilder.java +456 -0
- data/htmlparser/README +34 -0
- data/htmlparser/build.sh +38 -0
- data/jsl/jsl +0 -0
- data/jsl/jsl.default.conf +129 -0
- data/jsl/jsl.exe +0 -0
- data/lib/envjs.rb +2 -0
- data/lib/envjs/env.js +22 -3
- data/lib/envjs/event_loop.js +2 -0
- data/lib/envjs/static.js +155 -21
- data/licenses/GPL-LICENSE.txt +278 -0
- data/licenses/MIT-LICENSE.txt +20 -0
- data/src/base64.js +80 -0
- data/src/build.js +6 -0
- data/src/cruft/bad.html +24 -0
- data/src/cruft/dom.js +606 -0
- data/src/cruft/element.js +297 -0
- data/src/cruft/good.html +30 -0
- data/src/cruft/good.js +32 -0
- data/src/cruft/internal.js +81 -0
- data/src/cruft/parser.js +458 -0
- data/src/css/properties.js +293 -0
- data/src/css/rule.js +22 -0
- data/src/css/sizzle.js +717 -0
- data/src/css/stylesheet.js +52 -0
- data/src/dom/attr.js +55 -0
- data/src/dom/cdatasection.js +31 -0
- data/src/dom/characterdata.js +119 -0
- data/src/dom/comment.js +30 -0
- data/src/dom/doctype.js +9 -0
- data/src/dom/document.js +553 -0
- data/src/dom/dom.js +134 -0
- data/src/dom/element.js +217 -0
- data/src/dom/entities.js +273 -0
- data/src/dom/exception.js +28 -0
- data/src/dom/fragment.js +37 -0
- data/src/dom/implementation.js +602 -0
- data/src/dom/instruction.js +51 -0
- data/src/dom/namednodemap.js +374 -0
- data/src/dom/namespace.js +50 -0
- data/src/dom/node.js +618 -0
- data/src/dom/nodelist.js +195 -0
- data/src/dom/parser.js +1207 -0
- data/src/dom/text.js +73 -0
- data/src/event/event.js +39 -0
- data/src/event/mouseevent.js +4 -0
- data/src/event/uievent.js +8 -0
- data/src/html/a.js +110 -0
- data/src/html/anchor.js +80 -0
- data/src/html/area.js +57 -0
- data/src/html/base.js +26 -0
- data/src/html/blockquote-q.js +19 -0
- data/src/html/body.js +19 -0
- data/src/html/button.js +21 -0
- data/src/html/canvas.js +14 -0
- data/src/html/col-colgroup.js +49 -0
- data/src/html/collection.js +72 -0
- data/src/html/cookie.js +151 -0
- data/src/html/del-ins.js +25 -0
- data/src/html/div.js +28 -0
- data/src/html/document.js +359 -0
- data/src/html/element.js +380 -0
- data/src/html/fieldset.js +19 -0
- data/src/html/form.js +484 -0
- data/src/html/frame.js +89 -0
- data/src/html/frameset.js +25 -0
- data/src/html/head.js +44 -0
- data/src/html/html.js +0 -0
- data/src/html/htmlparser.js +340 -0
- data/src/html/iframe.js +26 -0
- data/src/html/image.js +0 -0
- data/src/html/img.js +62 -0
- data/src/html/input-elements.js +307 -0
- data/src/html/input.js +65 -0
- data/src/html/label.js +26 -0
- data/src/html/legend.js +19 -0
- data/src/html/link.js +82 -0
- data/src/html/map.js +22 -0
- data/src/html/meta.js +37 -0
- data/src/html/object.js +89 -0
- data/src/html/optgroup.js +25 -0
- data/src/html/option.js +97 -0
- data/src/html/param.js +38 -0
- data/src/html/script.js +122 -0
- data/src/html/select.js +129 -0
- data/src/html/style.js +31 -0
- data/src/html/table.js +199 -0
- data/src/html/tbody-thead-tfoot.js +91 -0
- data/src/html/td-th.js +18 -0
- data/src/html/textarea.js +25 -0
- data/src/html/title.js +20 -0
- data/src/html/tr.js +114 -0
- data/src/intro.js +141 -0
- data/src/outro.js +70 -0
- data/src/parser/html5.detailed.js +10762 -0
- data/src/parser/html5.min.js +503 -0
- data/src/parser/html5.pretty.js +10815 -0
- data/src/parser/intro.js +42 -0
- data/src/parser/outro.js +9 -0
- data/src/platform/core.js +323 -0
- data/src/platform/johnson.js +479 -0
- data/src/platform/rhino.js +327 -0
- data/src/platform/static/intro.js +41 -0
- data/src/platform/static/outro.js +30 -0
- data/src/profile/aop.js +238 -0
- data/src/profile/profile.js +402 -0
- data/src/serializer/xml.js +21 -0
- data/src/svg/animatedstring.js +25 -0
- data/src/svg/document.js +25 -0
- data/src/svg/element.js +22 -0
- data/src/svg/locatable.js +17 -0
- data/src/svg/rect.js +18 -0
- data/src/svg/rectelement.js +24 -0
- data/src/svg/stylable.js +49 -0
- data/src/svg/svgelement.js +22 -0
- data/src/svg/transformable.js +15 -0
- data/src/window/css.js +15 -0
- data/src/window/dialog.js +16 -0
- data/src/window/document.js +28 -0
- data/src/window/event.js +262 -0
- data/src/window/history.js +62 -0
- data/src/window/location.js +138 -0
- data/src/window/navigator.js +48 -0
- data/src/window/screen.js +53 -0
- data/src/window/timer.js +21 -0
- data/src/window/window.js +284 -0
- data/src/window/xhr.js +127 -0
- data/src/xpath/expression.js +49 -0
- data/src/xpath/implementation.js +2482 -0
- data/src/xpath/result.js +67 -0
- data/src/xpath/util.js +551 -0
- data/src/xpath/xmltoken.js +149 -0
- data/src/xslt/COPYING +34 -0
- data/src/xslt/ajaxslt-0.8.1/AUTHORS +1 -0
- data/src/xslt/ajaxslt-0.8.1/ChangeLog +136 -0
- data/src/xslt/ajaxslt-0.8.1/Makefile +49 -0
- data/src/xslt/ajaxslt-0.8.1/README +102 -0
- data/src/xslt/ajaxslt-0.8.1/TODO +15 -0
- data/src/xslt/ajaxslt-0.8.1/dom.js +566 -0
- data/src/xslt/ajaxslt-0.8.1/dom_unittest.html +24 -0
- data/src/xslt/ajaxslt-0.8.1/dom_unittest.js +131 -0
- data/src/xslt/ajaxslt-0.8.1/simplelog.js +79 -0
- data/src/xslt/ajaxslt-0.8.1/test/xpath.html +18 -0
- data/src/xslt/ajaxslt-0.8.1/test/xpath_script.js +45 -0
- data/src/xslt/ajaxslt-0.8.1/test/xslt.html +58 -0
- data/src/xslt/ajaxslt-0.8.1/test/xslt_script.js +33 -0
- data/src/xslt/ajaxslt-0.8.1/unittestsuite.html +26 -0
- data/src/xslt/ajaxslt-0.8.1/xmltoken.js +149 -0
- data/src/xslt/ajaxslt-0.8.1/xmltoken_unittest.html +18 -0
- data/src/xslt/ajaxslt-0.8.1/xmltoken_unittest.js +811 -0
- data/src/xslt/ajaxslt-0.8.1/xpath_unittest.html +39 -0
- data/src/xslt/ajaxslt-0.8.1/xpath_unittest.js +557 -0
- data/src/xslt/ajaxslt-0.8.1/xpathdebug.js +234 -0
- data/src/xslt/ajaxslt-0.8.1/xslt_unittest.html +138 -0
- data/src/xslt/ajaxslt-0.8.1/xslt_unittest.js +68 -0
- data/src/xslt/implementation.js +625 -0
- data/src/xslt/processor.js +37 -0
- data/src/xslt/util.js +449 -0
- data/test/foo.html +8 -0
- data/test/foo.js +40 -0
- data/test/jquery.js +6002 -0
- data/test/x.js +1 -0
- data/test/y.js +1 -0
- 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:
|