diff --git a/build.xml b/build.xml
index 9bbe85ef..b1aebb13 100644
--- a/build.xml
+++ b/build.xml
@@ -110,6 +110,7 @@
+
@@ -152,10 +153,7 @@
-
+
diff --git a/dist/env.js b/dist/env.js
index e108d33c..89cbdbd8 100644
--- a/dist/env.js
+++ b/dist/env.js
@@ -4953,7 +4953,7 @@ __extend__(HTMLDocument.prototype, {
// create DOMElement specifying 'this' as ownerDocument
//This is an html document so we need to use explicit interfaces per the
if( tagName.match(/^A$/)) {node = new HTMLAnchorElement(this);}
- else if(tagName.match(/AREA/)) {node = new HTMLAreaElement(this);}
+ else if(tagName.match(/^AREA$/)) {node = new HTMLAreaElement(this);}
else if(tagName.match(/BASE/)) {node = new HTMLBaseElement(this);}
else if(tagName.match(/BLOCKQUOTE|Q/)) {node = new HTMLQuoteElement(this);}
else if(tagName.match(/BODY/)) {node = new HTMLBodyElement(this);}
@@ -4994,7 +4994,7 @@ __extend__(HTMLDocument.prototype, {
else if(tagName.match(/TABLE/)) {node = new HTMLTableElement(this);}
else if(tagName.match(/TBODY|TFOOT|THEAD/)) {node = new HTMLSectionElement(this);}
else if(tagName.match(/TD|TH/)) {node = new HTMLTableCellElement(this);}
- else if(tagName.match(/TEXTAREA/)) {node = new HTMLElement(this);}
+ else if(tagName.match(/TEXTAREA/)) {node = new HTMLTextAreaElement(this);}
else if(tagName.match(/TITLE/)) {node = new HTMLTitleElement(this);}
else if(tagName.match(/TR/)) {node = new HTMLTableRowElement(this);}
else if(tagName.match(/UL/)) {node = new HTMLElement(this);}
@@ -5637,7 +5637,7 @@ $w.HTMLModElement = HTMLModElement; /*
*/
-$debug("Defining HTMLTextAreaElement");
+$debug("Defining HTMLDivElement");
/*
* HTMLDivElement - DOM Level 2
*/
@@ -5655,7 +5655,8 @@ __extend__(HTMLDivElement.prototype, {
}
});
-$w.HTMLDivElement = HTMLDivElement;$debug("Defining HTMLFieldSetElement");
+$w.HTMLDivElement = HTMLDivElement;
+$debug("Defining HTMLFieldSetElement");
/*
* HTMLFieldSetElement - DOM Level 2
*/
@@ -7103,7 +7104,118 @@ __extend__(HTMLTableCellElement.prototype, {
});
-$w.HTMLTableCellElement = HTMLTableCellElement;$debug("Defining HTMLTitleElement");
+$w.HTMLTableCellElement = HTMLTableCellElement;$debug("Defining HTMLTextAreaElement");
+/*
+* HTMLTextAreaElement - DOM Level 2
+*/
+var HTMLTextAreaElement = function(ownerDocument) {
+ this.HTMLElement = HTMLElement;
+ this.HTMLElement(ownerDocument);
+};
+HTMLTextAreaElement.prototype = new HTMLElement;
+__extend__(HTMLTextAreaElement.prototype, {
+ get cols(){
+ return this.getAttribute('cols');
+ },
+ set cols(value){
+ this.setAttribute('cols', value);
+ },
+ get rows(){
+ return this.getAttribute('rows');
+ },
+ set rows(value){
+ this.setAttribute('rows', value);
+ },
+
+ get defaultValue(){
+ return this.getAttribute('defaultValue');
+ },
+ set defaultValue(value){
+ this.setAttribute('defaultValue', value);
+ },
+ get form(){
+ var parent = this.parent;
+ while(parent.nodeName.toLowerCase() != 'form'){
+ parent = parent.parent;
+ }
+ return parent;
+ },
+ get accessKey(){
+ return this.getAttribute('accesskey');
+ },
+ set accessKey(value){
+ this.setAttribute('accesskey',value);
+ },
+ get access(){
+ return this.getAttribute('access');
+ },
+ set access(value){
+ this.setAttribute('access', value);
+ },
+ get disabled(){
+ return (this.getAttribute('disabled')=='disabled');
+ },
+ set disabled(value){
+ this.setAttribute('disabled', (value ? 'disabled' :''));
+ },
+ get name(){
+ return this.getAttribute('name')||'';
+ },
+ set name(value){
+ this.setAttribute('name', value);
+ },
+ get readOnly(){
+ return (this.getAttribute('readonly')=='readonly');
+ },
+ set readOnly(value){
+ this.setAttribute('readonly', (value ? 'readonly' :''));
+ },
+ get tabIndex(){
+ return Number(this.getAttribute('tabindex'));
+ },
+ set tabIndex(value){
+ this.setAttribute('tabindex',Number(value));
+ },
+ get type(){
+ return this.getAttribute('type');
+ },
+ set type(value){
+ this.setAttribute('type',value);
+ },
+ get value(){
+ return this.getAttribute('value');
+ },
+ set value(value){
+ this.setAttribute('value',value);
+ },
+ blur:function(){
+ __blur__(this);
+
+ if (this._oldValue != this.getAttribute('value')){
+ var event = document.createEvent();
+ event.initEvent("change");
+ this.dispatchEvent( event );
+ }
+ },
+ focus:function(){
+ __focus__(this);
+ this._oldValue = this.getAttribute('value');
+ },
+ select:function(){
+ __select__(this);
+
+ },
+ click:function(){
+ __click__(this);
+
+ },
+ onchange: function(event){
+ __eval__(this.getAttribute('onchange')||'', this)
+ }
+});
+
+$w.HTMLTextAreaElement = HTMLTextAreaElement;
+$debug("Defining HTMLTitleElement");
/*
* HTMLTitleElement - DOM Level 2
*/
@@ -8828,12 +8940,21 @@ window.setTimeout = function(fn, time){
tfn = function() {
fn();
window.clearInterval(num);
- }
+ };
}
- $debug("Creating timer number "+num);
- $timers[num] = new $env.timer(tfn, time);
- $timers[num].start();
- return num;
+
+ if (time === 0){
+ if (typeof fn == 'string')
+ eval(fn);
+ else
+ fn();
+ }
+ else {
+ $debug("Creating timer number "+num);
+ $timers[num] = new $env.timer(tfn, time);
+ $timers[num].start();
+ return num;
+ }
};
window.setInterval = function(fn, time){
diff --git a/dist/env.rhino.js b/dist/env.rhino.js
index b80d76be..a7e3133c 100644
--- a/dist/env.rhino.js
+++ b/dist/env.rhino.js
@@ -5392,7 +5392,7 @@ __extend__(HTMLDocument.prototype, {
// create DOMElement specifying 'this' as ownerDocument
//This is an html document so we need to use explicit interfaces per the
if( tagName.match(/^A$/)) {node = new HTMLAnchorElement(this);}
- else if(tagName.match(/AREA/)) {node = new HTMLAreaElement(this);}
+ else if(tagName.match(/^AREA$/)) {node = new HTMLAreaElement(this);}
else if(tagName.match(/BASE/)) {node = new HTMLBaseElement(this);}
else if(tagName.match(/BLOCKQUOTE|Q/)) {node = new HTMLQuoteElement(this);}
else if(tagName.match(/BODY/)) {node = new HTMLBodyElement(this);}
@@ -5433,7 +5433,7 @@ __extend__(HTMLDocument.prototype, {
else if(tagName.match(/TABLE/)) {node = new HTMLTableElement(this);}
else if(tagName.match(/TBODY|TFOOT|THEAD/)) {node = new HTMLSectionElement(this);}
else if(tagName.match(/TD|TH/)) {node = new HTMLTableCellElement(this);}
- else if(tagName.match(/TEXTAREA/)) {node = new HTMLElement(this);}
+ else if(tagName.match(/TEXTAREA/)) {node = new HTMLTextAreaElement(this);}
else if(tagName.match(/TITLE/)) {node = new HTMLTitleElement(this);}
else if(tagName.match(/TR/)) {node = new HTMLTableRowElement(this);}
else if(tagName.match(/UL/)) {node = new HTMLElement(this);}
@@ -6076,7 +6076,7 @@ $w.HTMLModElement = HTMLModElement; /*
*/
-$debug("Defining HTMLTextAreaElement");
+$debug("Defining HTMLDivElement");
/*
* HTMLDivElement - DOM Level 2
*/
@@ -6094,7 +6094,8 @@ __extend__(HTMLDivElement.prototype, {
}
});
-$w.HTMLDivElement = HTMLDivElement;$debug("Defining HTMLFieldSetElement");
+$w.HTMLDivElement = HTMLDivElement;
+$debug("Defining HTMLFieldSetElement");
/*
* HTMLFieldSetElement - DOM Level 2
*/
@@ -7542,7 +7543,118 @@ __extend__(HTMLTableCellElement.prototype, {
});
-$w.HTMLTableCellElement = HTMLTableCellElement;$debug("Defining HTMLTitleElement");
+$w.HTMLTableCellElement = HTMLTableCellElement;$debug("Defining HTMLTextAreaElement");
+/*
+* HTMLTextAreaElement - DOM Level 2
+*/
+var HTMLTextAreaElement = function(ownerDocument) {
+ this.HTMLElement = HTMLElement;
+ this.HTMLElement(ownerDocument);
+};
+HTMLTextAreaElement.prototype = new HTMLElement;
+__extend__(HTMLTextAreaElement.prototype, {
+ get cols(){
+ return this.getAttribute('cols');
+ },
+ set cols(value){
+ this.setAttribute('cols', value);
+ },
+ get rows(){
+ return this.getAttribute('rows');
+ },
+ set rows(value){
+ this.setAttribute('rows', value);
+ },
+
+ get defaultValue(){
+ return this.getAttribute('defaultValue');
+ },
+ set defaultValue(value){
+ this.setAttribute('defaultValue', value);
+ },
+ get form(){
+ var parent = this.parent;
+ while(parent.nodeName.toLowerCase() != 'form'){
+ parent = parent.parent;
+ }
+ return parent;
+ },
+ get accessKey(){
+ return this.getAttribute('accesskey');
+ },
+ set accessKey(value){
+ this.setAttribute('accesskey',value);
+ },
+ get access(){
+ return this.getAttribute('access');
+ },
+ set access(value){
+ this.setAttribute('access', value);
+ },
+ get disabled(){
+ return (this.getAttribute('disabled')=='disabled');
+ },
+ set disabled(value){
+ this.setAttribute('disabled', (value ? 'disabled' :''));
+ },
+ get name(){
+ return this.getAttribute('name')||'';
+ },
+ set name(value){
+ this.setAttribute('name', value);
+ },
+ get readOnly(){
+ return (this.getAttribute('readonly')=='readonly');
+ },
+ set readOnly(value){
+ this.setAttribute('readonly', (value ? 'readonly' :''));
+ },
+ get tabIndex(){
+ return Number(this.getAttribute('tabindex'));
+ },
+ set tabIndex(value){
+ this.setAttribute('tabindex',Number(value));
+ },
+ get type(){
+ return this.getAttribute('type');
+ },
+ set type(value){
+ this.setAttribute('type',value);
+ },
+ get value(){
+ return this.getAttribute('value');
+ },
+ set value(value){
+ this.setAttribute('value',value);
+ },
+ blur:function(){
+ __blur__(this);
+
+ if (this._oldValue != this.getAttribute('value')){
+ var event = document.createEvent();
+ event.initEvent("change");
+ this.dispatchEvent( event );
+ }
+ },
+ focus:function(){
+ __focus__(this);
+ this._oldValue = this.getAttribute('value');
+ },
+ select:function(){
+ __select__(this);
+
+ },
+ click:function(){
+ __click__(this);
+
+ },
+ onchange: function(event){
+ __eval__(this.getAttribute('onchange')||'', this)
+ }
+});
+
+$w.HTMLTextAreaElement = HTMLTextAreaElement;
+$debug("Defining HTMLTitleElement");
/*
* HTMLTitleElement - DOM Level 2
*/
@@ -9267,12 +9379,21 @@ window.setTimeout = function(fn, time){
tfn = function() {
fn();
window.clearInterval(num);
- }
+ };
}
- $debug("Creating timer number "+num);
- $timers[num] = new $env.timer(tfn, time);
- $timers[num].start();
- return num;
+
+ if (time === 0){
+ if (typeof fn == 'string')
+ eval(fn);
+ else
+ fn();
+ }
+ else {
+ $debug("Creating timer number "+num);
+ $timers[num] = new $env.timer(tfn, time);
+ $timers[num].start();
+ return num;
+ }
};
window.setInterval = function(fn, time){
diff --git a/rhino/build.properties b/rhino/build.properties
index 47ea6ee2..d3fef5d6 100644
--- a/rhino/build.properties
+++ b/rhino/build.properties
@@ -7,10 +7,16 @@ implementation.version: mainForEnvjs 0 ${implementation.date}
build.dir: build
src.dir: src
-this.jar: mainForEnvjs.jar
+
+jar.jar: mainForEnvjs.jar
dist.name: mainforenvjs${version}
dist.dir: ${build.dir}/${dist.name}
+combined.jar: env.js.jar
+rhino.jar: js.jar
+combined.name: mainforenvjs${version}
+combined.dir: ${build.dir}/${dist.name}
+
# compilation destionation
classes: ${build.dir}/classes
diff --git a/rhino/build.xml b/rhino/build.xml
index 5cb63669..4e823e6d 100644
--- a/rhino/build.xml
+++ b/rhino/build.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/rhino/env.js.jar b/rhino/env.js.jar
new file mode 100644
index 00000000..12a8c47e
Binary files /dev/null and b/rhino/env.js.jar differ
diff --git a/rhino/mainForEnvjs.jar b/rhino/mainForEnvjs.jar
deleted file mode 100644
index 0edbd5f4..00000000
Binary files a/rhino/mainForEnvjs.jar and /dev/null differ
diff --git a/rhino/src/build.xml b/rhino/src/build.xml
index 4aa28587..8fdefa97 100644
--- a/rhino/src/build.xml
+++ b/rhino/src/build.xml
@@ -1,4 +1,12 @@
+
+
@@ -13,6 +21,7 @@
+
@@ -29,7 +38,17 @@
-
+
+
+
+
+