summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/modules/js/htdocs/util.js
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2011-08-06 05:59:32 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2011-08-06 05:59:32 +0000
commit3b3beac5adfa1995a9a4c92fd92a881f024be08e (patch)
treed958076da28db597359af0ae27db369925e253e4 /sca-cpp/trunk/modules/js/htdocs/util.js
parent4b14cefc9e79850ebb18844752771c3f141c7385 (diff)
Javascript improvements: add local storage, improve caching using URI fragments instead of query strings, simplify component layout and optimize some of the Javascript functions, and add the ability to clone components.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1154447 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/modules/js/htdocs/util.js')
-rw-r--r--sca-cpp/trunk/modules/js/htdocs/util.js69
1 files changed, 38 insertions, 31 deletions
diff --git a/sca-cpp/trunk/modules/js/htdocs/util.js b/sca-cpp/trunk/modules/js/htdocs/util.js
index 4c09b2b13c..fd7005e9c7 100644
--- a/sca-cpp/trunk/modules/js/htdocs/util.js
+++ b/sca-cpp/trunk/modules/js/htdocs/util.js
@@ -35,7 +35,7 @@ function car(l) {
}
function first(l) {
- return car(l);
+ return l[0];
}
function cdr(l) {
@@ -43,27 +43,27 @@ function cdr(l) {
}
function rest(l) {
- return cdr(l);
+ return l.slice(1);
}
function cadr(l) {
- return car(cdr(l));
+ return l[1];
}
function cddr(l) {
- return cdr(cdr(l));
+ return l.slice(2);
}
function caddr(l) {
- return car(cddr(l));
+ return l[2];
}
function cdddr(l) {
- return cdr(cdr(cdr(l)));
+ return l.slice(3);
}
function cadddr(l) {
- return car(cdddr(l));
+ return l[3];
}
function append(a, b) {
@@ -82,33 +82,23 @@ function range(a, b) {
}
function isNil(v) {
- if (v == null || typeof v == 'undefined' || (v.constructor == Array && v.length == 0))
- return true;
- return false;
+ return (v == null || typeof v == 'undefined' || (v.constructor == Array && v.length == 0));
}
function isSymbol(v) {
- if (typeof v == 'string' && v.slice(0, 1) == "'")
- return true;
- return false;
+ return (typeof v == 'string' && v.slice(0, 1) == "'");
}
function isString(v) {
- if (typeof v == 'string' && v.slice(0, 1) != "'")
- return true;
- return false;
+ return (typeof v == 'string' && v.slice(0, 1) != "'");
}
function isList(v) {
- if (v != null && typeof v != 'undefined' && v.constructor == Array)
- return true;
- return false;
+ return (v != null && typeof v != 'undefined' && v.constructor == Array);
}
function isTaggedList(v, t) {
- if (isList(v) && !isNil(v) && car(v) == t)
- return true;
- return false;
+ return (isList(v) && !isNil(v) && car(v) == t);
}
var emptylist = new Array();
@@ -131,10 +121,13 @@ function length(l) {
*/
function assoc(k, l) {
if (isNil(l))
- return mklist();
- if (k == car(car(l)))
- return car(l);
- return assoc(k, cdr(l));
+ return emptylist;
+ var n = l.length;
+ for(var i = 0; i < n; i++) {
+ if (k == car(l[i]))
+ return l[i];
+ }
+ return emptylist;
}
/**
@@ -143,15 +136,24 @@ function assoc(k, l) {
function map(f, l) {
if (isNil(l))
return l;
- return cons(f(car(l)), map(f, cdr(l)));
+ var n = l.length;
+ var a = new Array();
+ for(var i = 0; i < n; i++) {
+ a.push(f(l[i]));
+ }
+ return a;
}
function filter(f, l) {
if (isNil(l))
return l;
- if (f(car(l)))
- return cons(car(l), filter(f, cdr(l)));
- return filter(f, cdr(l));
+ var n = l.length;
+ var a = new Array();
+ for(var i = 0; i < n; i++) {
+ if (f(l[i]))
+ a.push(l[i]);
+ }
+ return a;
}
function reduce(f, i, l) {
@@ -245,7 +247,12 @@ function assert(exp) {
function writeStrings(l) {
if (isNil(l))
return '';
- return car(l) + writeStrings(cdr(l));
+ var s = '';
+ var n = l.length;
+ for(var i = 0; i < n; i++) {
+ s = s + l[i];
+ }
+ return s;
}
/**