diff options
author | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-14 15:39:19 +0000 |
---|---|---|
committer | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-14 15:39:19 +0000 |
commit | 1c5685d68f1b73270fb814fe04cbb490eb90ba5f (patch) | |
tree | 3d3ada08a934b96fc31531f1327690d7edc6f766 /includes/js/dojox/lang | |
parent | 104d59099e048688c4dbac37d72137006e396558 (diff) | |
download | semanticscuttle-1c5685d68f1b73270fb814fe04cbb490eb90ba5f.tar.gz semanticscuttle-1c5685d68f1b73270fb814fe04cbb490eb90ba5f.tar.bz2 |
Minor fix: Remove DOJO library (60Mo) replaced by link to Google CDN (online DOJO library)
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@159 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'includes/js/dojox/lang')
23 files changed, 0 insertions, 1339 deletions
diff --git a/includes/js/dojox/lang/LICENSE b/includes/js/dojox/lang/LICENSE deleted file mode 100644 index d84a6aa..0000000 --- a/includes/js/dojox/lang/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License - -Copyright (c) 2007 Oliver Steele - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/includes/js/dojox/lang/README b/includes/js/dojox/lang/README deleted file mode 100644 index 753b943..0000000 --- a/includes/js/dojox/lang/README +++ /dev/null @@ -1,37 +0,0 @@ -------------------------------------------------------------------------------- -dojox.lang -------------------------------------------------------------------------------- -Version 0.991 -Release date: 07/30/2007 -------------------------------------------------------------------------------- -Project state: -[beta] -------------------------------------------------------------------------------- -Credits - Eugene Lazutkin (eugene.lazutkin@gmail.com) -------------------------------------------------------------------------------- -Project description - -Implementation of common functional operations, and provisions -Later we can add other JS language-related helpers. -------------------------------------------------------------------------------- -Dependencies: - -None. -------------------------------------------------------------------------------- -Documentation - -------------------------------------------------------------------------------- -Installation instructions - -Grab the following from the Dojo SVN Repository: -http://svn.dojotoolkit.org/var/src/dojo/dojox/trunk/lang/* - -Install into the following directory structure: -/dojox/lang/ - -...which should be at the same level as your Dojo checkout. -------------------------------------------------------------------------------- -Additional Notes - -See tests and the source for more details. diff --git a/includes/js/dojox/lang/functional.js b/includes/js/dojox/lang/functional.js deleted file mode 100644 index e75ad00..0000000 --- a/includes/js/dojox/lang/functional.js +++ /dev/null @@ -1,9 +0,0 @@ -if(!dojo._hasResource["dojox.lang.functional"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.functional"] = true; -dojo.provide("dojox.lang.functional"); - -dojo.require("dojox.lang.functional.lambda"); -dojo.require("dojox.lang.functional.array"); -dojo.require("dojox.lang.functional.object"); - -} diff --git a/includes/js/dojox/lang/functional/array.js b/includes/js/dojox/lang/functional/array.js deleted file mode 100644 index 45c2613..0000000 --- a/includes/js/dojox/lang/functional/array.js +++ /dev/null @@ -1,113 +0,0 @@ -if(!dojo._hasResource["dojox.lang.functional.array"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.functional.array"] = true; -dojo.provide("dojox.lang.functional.array"); - -dojo.require("dojox.lang.functional.lambda"); - -// This module adds high-level functions and related constructs: -// - array-processing functions similar to standard JS functions - -// Notes: -// - this module provides JS standard methods similar to high-level functions in dojo/_base/array.js: -// forEach, map, filter, every, some - -// Defined methods: -// - take any valid lambda argument as the functional argument -// - operate on dense arrays -// - take a string as the array argument -// - take an iterator objects as the array argument - -(function(){ - var d = dojo, df = dojox.lang.functional; - - d.mixin(df, { - // JS 1.6 standard array functions, which can take a lambda as a parameter. - // Consider using dojo._base.array functions, if you don't need the lambda support. - filter: function(/*Array|String|Object*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: creates a new array with all elements that pass the test - // implemented by the provided function. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - var t = [], v; - if(d.isArray(a)){ - for(var i = 0, n = a.length; i < n; ++i){ - v = a[i]; - if(f.call(o, v, i, a)){ t.push(v); } - } - }else{ - for(var i = 0; a.hasNext();){ - v = a.next(); - if(f.call(o, v, i++)){ t.push(v); } - } - } - return t; // Array - }, - forEach: function(/*Array|String|Object*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: executes a provided function once per array element. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - if(d.isArray(a)){ - for(var i = 0, n = a.length; i < n; f.call(o, a[i], i, a), ++i); - }else{ - for(var i = 0; a.hasNext(); f.call(o, a.next(), i++)); - } - }, - map: function(/*Array|String|Object*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: creates a new array with the results of calling - // a provided function on every element in this array. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - var t, n; - if(d.isArray(a)){ - t = new Array(n = a.length); - for(var i = 0; i < n; t[i] = f.call(o, a[i], i, a), ++i); - }else{ - t = []; - for(var i = 0; a.hasNext(); t.push(f.call(o, a.next(), i++))); - } - return t; // Array - }, - every: function(/*Array|String|Object*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: tests whether all elements in the array pass the test - // implemented by the provided function. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - if(d.isArray(a)){ - for(var i = 0, n = a.length; i < n; ++i){ - if(!f.call(o, a[i], i, a)){ - return false; // Boolean - } - } - }else{ - for(var i = 0; a.hasNext();){ - if(!f.call(o, a.next(), i++)){ - return false; // Boolean - } - } - } - return true; // Boolean - }, - some: function(/*Array|String|Object*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: tests whether some element in the array passes the test - // implemented by the provided function. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - if(d.isArray(a)){ - for(var i = 0, n = a.length; i < n; ++i){ - if(f.call(o, a[i], i, a)){ - return true; // Boolean - } - } - }else{ - for(var i = 0; a.hasNext();){ - if(f.call(o, a.next(), i++)){ - return true; // Boolean - } - } - } - return false; // Boolean - } - }); -})(); - -} diff --git a/includes/js/dojox/lang/functional/curry.js b/includes/js/dojox/lang/functional/curry.js deleted file mode 100644 index 7c795ec..0000000 --- a/includes/js/dojox/lang/functional/curry.js +++ /dev/null @@ -1,96 +0,0 @@ -if(!dojo._hasResource["dojox.lang.functional.curry"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.functional.curry"] = true; -dojo.provide("dojox.lang.functional.curry"); - -dojo.require("dojox.lang.functional.lambda"); - -// This module adds high-level functions and related constructs: -// - currying and partial functions -// - argument pre-processing: mixer and flip - -// Acknoledgements: -// - partial() is based on work by Oliver Steele -// (http://osteele.com/sources/javascript/functional/functional.js) -// which was published under MIT License - -// Defined methods: -// - take any valid lambda argument as the functional argument - -(function(){ - var df = dojox.lang.functional; - - var currying = function(/*Object*/ info){ - return function(){ // Function - if(arguments.length + info.args.length < info.arity){ - return currying({func: info.func, arity: info.arity, - args: Array.prototype.concat.apply(info.args, arguments)}); - } - return info.func.apply(this, Array.prototype.concat.apply(info.args, arguments)); - }; - }; - - dojo.mixin(df, { - // currying and partial functions - curry: function(/*Function|String|Array*/ f, /*Number?*/ arity){ - // summary: curries a function until the arity is satisfied, at - // which point it returns the calculated value. - f = df.lambda(f); - arity = typeof arity == "number" ? arity : f.length; - return currying({func: f, arity: arity, args: []}); // Function - }, - arg: {}, // marker for missing arguments - partial: function(/*Function|String|Array*/ f){ - // summary: creates a function where some arguments are bound, and - // some arguments (marked as dojox.lang.functional.arg) are will be - // accepted by the final function in the order they are encountered. - // description: This method is used to produce partially bound - // functions. If you want to change the order of arguments, use - // dojox.lang.functional.mixer() or dojox.lang.functional.flip(). - var a = arguments, args = new Array(a.length - 1), p = []; - f = df.lambda(f); - for(var i = 1; i < a.length; ++i){ - var t = a[i]; - args[i - 1] = t; - if(t == df.arg){ - p.push(i - 1); - } - } - return function(){ // Function - var t = Array.prototype.slice.call(args, 0); // clone the array - for(var i = 0; i < p.length; ++i){ - t[p[i]] = arguments[i]; - } - return f.apply(this, t); - }; - }, - // argument pre-processing - mixer: function(/*Function|String|Array*/ f, /*Array*/ mix){ - // summary: changes the order of arguments using an array of - // numbers mix --- i-th argument comes from mix[i]-th place - // of supplied arguments. - f = df.lambda(f); - return function(){ // Function - var t = new Array(mix.length); - for(var i = 0; i < mix.length; ++i){ - t[i] = arguments[mix[i]]; - } - return f.apply(this, t); - }; - }, - flip: function(/*Function|String|Array*/ f){ - // summary: changes the order of arguments by reversing their - // order. - f = df.lambda(f); - return function(){ // Function - // reverse arguments - var a = arguments, l = a.length - 1, t = new Array(l + 1), i; - for(i = 0; i <= l; ++i){ - t[l - i] = a[i]; - } - return f.apply(this, t); - }; - } - }); -})(); - -} diff --git a/includes/js/dojox/lang/functional/fold.js b/includes/js/dojox/lang/functional/fold.js deleted file mode 100644 index 90a9a3d..0000000 --- a/includes/js/dojox/lang/functional/fold.js +++ /dev/null @@ -1,87 +0,0 @@ -if(!dojo._hasResource["dojox.lang.functional.fold"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.functional.fold"] = true; -dojo.provide("dojox.lang.functional.fold"); - -dojo.require("dojox.lang.functional.lambda"); - -// This module adds high-level functions and related constructs: -// - "fold" family of functions - -// Notes: -// - missing high-level functions are provided with the compatible API: -// foldl, foldl1, foldr, foldr1 -// - missing JS standard functions are provided with the compatible API: -// reduce, reduceRight - -// Defined methods: -// - take any valid lambda argument as the functional argument -// - operate on dense arrays -// - take a string as the array argument -// - take an iterator objects as the array argument (only foldl, foldl1, and reduce) - -(function(){ - var d = dojo, df = dojox.lang.functional; - - d.mixin(df, { - // classic reduce-class functions - foldl: function(/*Array|String|Object*/ a, /*Function*/ f, /*Object*/ z, /*Object?*/ o){ - // summary: repeatedly applies a binary function to an array from left - // to right using a seed value as a starting point; returns the final - // value. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - if(d.isArray(a)){ - for(var i = 0, n = a.length; i < n; z = f.call(o, z, a[i], i, a), ++i); - }else{ - for(var i = 0; a.hasNext(); z = f.call(o, z, a.next(), i++)); - } - return z; // Object - }, - foldl1: function(/*Array|String|Object*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: repeatedly applies a binary function to an array from left - // to right; returns the final value. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - var z; - if(d.isArray(a)){ - z = a[0]; - for(var i = 1, n = a.length; i < n; z = f.call(o, z, a[i], i, a), ++i); - }else if(a.hasNext()){ - z = a.next(); - for(var i = 1; a.hasNext(); z = f.call(o, z, a.next(), i++)); - } - return z; // Object - }, - foldr: function(/*Array|String*/ a, /*Function|String|Array*/ f, /*Object*/ z, /*Object?*/ o){ - // summary: repeatedly applies a binary function to an array from right - // to left using a seed value as a starting point; returns the final - // value. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - for(var i = a.length; i > 0; --i, z = f.call(o, z, a[i], i, a)); - return z; // Object - }, - foldr1: function(/*Array|String*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: repeatedly applies a binary function to an array from right - // to left; returns the final value. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - var n = a.length, z = a[n - 1]; - for(var i = n - 1; i > 0; --i, z = f.call(o, z, a[i], i, a)); - return z; // Object - }, - // JS 1.8 standard array functions, which can take a lambda as a parameter. - reduce: function(/*Array|String|Object*/ a, /*Function*/ f, /*Object?*/ z){ - // summary: apply a function simultaneously against two values of the array - // (from left-to-right) as to reduce it to a single value. - return arguments.length < 3 ? df.foldl1(a, f) : df.foldl(a, f, z); // Object - }, - reduceRight: function(/*Array|String*/ a, /*Function*/ f, /*Object?*/ z){ - // summary: apply a function simultaneously against two values of the array - // (from right-to-left) as to reduce it to a single value. - return arguments.length < 3 ? df.foldr1(a, f) : df.foldr(a, f, z); // Object - } - }); -})(); - -} diff --git a/includes/js/dojox/lang/functional/lambda.js b/includes/js/dojox/lang/functional/lambda.js deleted file mode 100644 index 60be9f3..0000000 --- a/includes/js/dojox/lang/functional/lambda.js +++ /dev/null @@ -1,110 +0,0 @@ -if(!dojo._hasResource["dojox.lang.functional.lambda"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.functional.lambda"] = true; -dojo.provide("dojox.lang.functional.lambda"); - -// This module adds high-level functions and related constructs: -// - anonymous functions built from the string - -// Acknoledgements: -// - lambda() is based on work by Oliver Steele -// (http://osteele.com/sources/javascript/functional/functional.js) -// which was published under MIT License - -// Notes: -// - lambda() produces functions, which after the compilation step are -// as fast as regular JS functions (at least theoretically). - -// Lambda input values: -// - returns functions unchanged -// - converts strings to functions -// - converts arrays to a functional composition - -(function(){ - var df = dojox.lang.functional; - - // split() is augmented on IE6 to ensure the uniform behavior - var split = "ab".split(/a*/).length > 1 ? String.prototype.split : - function(sep){ - var r = this.split.call(this, sep), - m = sep.exec(this); - if(m && m.index == 0){ r.unshift(""); } - return r; - }; - - var lambda = function(/*String*/ s){ - var args = [], sects = split.call(s, /\s*->\s*/m); - if(sects.length > 1){ - while(sects.length){ - s = sects.pop(); - args = sects.pop().split(/\s*,\s*|\s+/m); - if(sects.length){ sects.push("(function(" + args + "){return (" + s + ")})"); } - } - }else if(s.match(/\b_\b/)){ - args = ["_"]; - }else{ - var l = s.match(/^\s*(?:[+*\/%&|\^\.=<>]|!=)/m), - r = s.match(/[+\-*\/%&|\^\.=<>!]\s*$/m); - if(l || r){ - if(l){ - args.push("$1"); - s = "$1" + s; - } - if(r){ - args.push("$2"); - s = s + "$2"; - } - }else{ - // the point of the long regex below is to exclude all well-known - // lower-case words from the list of potential arguments - var vars = s. - replace(/(?:\b[A-Z]|\.[a-zA-Z_$])[a-zA-Z_$\d]*|[a-zA-Z_$][a-zA-Z_$\d]*:|this|true|false|null|undefined|typeof|instanceof|in|delete|new|void|arguments|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|eval|isFinite|isNaN|parseFloat|parseInt|unescape|dojo|dijit|dojox|window|document|'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"/g, ""). - match(/([a-z_$][a-z_$\d]*)/gi) || []; - var t = {}; - dojo.forEach(vars, function(v){ - if(!(v in t)){ - args.push(v); - t[v] = 1; - } - }); - } - } - return {args: args, body: "return (" + s + ");"}; // Object - }; - - var compose = function(/*Array*/ a){ - return a.length ? - function(){ - var i = a.length - 1, x = df.lambda(a[i]).apply(this, arguments); - for(--i; i >= 0; --i){ x = df.lambda(a[i]).call(this, x); } - return x; - } - : - // identity - function(x){ return x; }; - }; - - dojo.mixin(df, { - // lambda - buildLambda: function(/*String*/ s){ - // summary: builds a function from a snippet, returns a string, - // which represents the function. - // description: This method returns a textual representation of a function - // built from the snippet. It is meant to be evaled in the proper context, - // so local variables can be pulled from the environment. - s = lambda(s); - return "function(" + s.args.join(",") + "){" + s.body + "}"; // String - }, - lambda: function(/*Function|String|Array*/ s){ - // summary: builds a function from a snippet, or array (composing), returns - // a function object; functions are passed through unmodified. - // description: This method is used to normalize a functional representation - // (a text snippet, an array, or a function) to a function object. - if(typeof s == "function"){ return s; } - if(s instanceof Array){ return compose(s); } - s = lambda(s); - return new Function(s.args, s.body); // Function - } - }); -})(); - -} diff --git a/includes/js/dojox/lang/functional/listcomp.js b/includes/js/dojox/lang/functional/listcomp.js deleted file mode 100644 index adb4883..0000000 --- a/includes/js/dojox/lang/functional/listcomp.js +++ /dev/null @@ -1,54 +0,0 @@ -if(!dojo._hasResource["dojox.lang.functional.listcomp"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.functional.listcomp"] = true; -dojo.provide("dojox.lang.functional.listcomp"); - -// This module adds high-level functions and related constructs: -// - list comprehensions similar to JavaScript 1.7 - -// Notes: -// - listcomp() produces functions, which after the compilation step are -// as fast as regular JS functions (at least theoretically). - -(function(){ - var g_re = /\bfor\b|\bif\b/gm; - - var listcomp = function(/*String*/ s){ - var frag = s.split(g_re), act = s.match(g_re), - head = ["var r = [];"], tail = []; - for(var i = 0; i < act.length;){ - var a = act[i], f = frag[++i]; - if(a == "for" && !/^\s*\(\s*(;|var)/.test(f)){ - f = f.replace(/^\s*\(/, "(var "); - } - head.push(a, f, "{"); - tail.push("}"); - } - return head.join("") + "r.push(" + frag[0] + ");" + tail.join("") + "return r;"; // String - }; - - dojo.mixin(dojox.lang.functional, { - buildListcomp: function(/*String*/ s){ - // summary: builds a function from a text snippet, which represents a valid - // JS 1.7 list comprehension, returns a string, which represents the function. - // description: This method returns a textual representation of a function - // built from the list comprehension text snippet (conformant to JS 1.7). - // It is meant to be evaled in the proper context, so local variable can be - // pulled from the environment. - return "function(){" + listcomp(s) + "}"; // String - }, - compileListcomp: function(/*String*/ s){ - // summary: builds a function from a text snippet, which represents a valid - // JS 1.7 list comprehension, returns a function object. - // description: This method returns a function built from the list - // comprehension text snippet (conformant to JS 1.7). It is meant to be - // reused several times. - return new Function([], listcomp(s)); // Function - }, - listcomp: function(/*String*/ s){ - // summary: executes the list comprehension building an array. - return (new Function([], listcomp(s)))(); // Array - } - }); -})(); - -} diff --git a/includes/js/dojox/lang/functional/object.js b/includes/js/dojox/lang/functional/object.js deleted file mode 100644 index 52b6272..0000000 --- a/includes/js/dojox/lang/functional/object.js +++ /dev/null @@ -1,48 +0,0 @@ -if(!dojo._hasResource["dojox.lang.functional.object"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.functional.object"] = true; -dojo.provide("dojox.lang.functional.object"); - -dojo.require("dojox.lang.functional.lambda"); - -// This module adds high-level functions and related constructs: -// - object/dictionary helpers - -// Defined methods: -// - take any valid lambda argument as the functional argument - -(function(){ - var d = dojo, df = dojox.lang.functional, empty = {}; - - d.mixin(df, { - // object helpers - forIn: function(/*Object*/ obj, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: iterates over all object members skipping members, which - // are present in the empty object (IE and/or 3rd-party libraries). - o = o || d.global; f = df.lambda(f); - for(var i in obj){ - if(i in empty){ continue; } - f.call(o, obj[i], i, obj); - } - }, - keys: function(/*Object*/ obj){ - // summary: returns an array of all keys in the object - var t = []; - for(var i in obj){ - if(i in empty){ continue; } - t.push(i); - } - return t; // Array - }, - values: function(/*Object*/ obj){ - // summary: returns an array of all values in the object - var t = []; - for(var i in obj){ - if(i in empty){ continue; } - t.push(obj[i]); - } - return t; // Array - } - }); -})(); - -} diff --git a/includes/js/dojox/lang/functional/reversed.js b/includes/js/dojox/lang/functional/reversed.js deleted file mode 100644 index 4375948..0000000 --- a/includes/js/dojox/lang/functional/reversed.js +++ /dev/null @@ -1,79 +0,0 @@ -if(!dojo._hasResource["dojox.lang.functional.reversed"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.functional.reversed"] = true; -dojo.provide("dojox.lang.functional.reversed"); - -dojo.require("dojox.lang.functional.lambda"); - -// This module adds high-level functions and related constructs: -// - reversed versions of array-processing functions similar to standard JS functions - -// Notes: -// - this module provides reversed versions of standard array-processing functions: -// forEachRev, mapRev, filterRev - -// Defined methods: -// - take any valid lambda argument as the functional argument -// - operate on dense arrays -// - take a string as the array argument - -(function(){ - var d = dojo, df = dojox.lang.functional; - - d.mixin(df, { - // JS 1.6 standard array functions, which can take a lambda as a parameter. - // Consider using dojo._base.array functions, if you don't need the lambda support. - filterRev: function(/*Array|String*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: creates a new array with all elements that pass the test - // implemented by the provided function. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - var t = [], v; - for(var i = a.length - 1; i >= 0; --i){ - v = a[i]; - if(f.call(o, v, i, a)){ t.push(v); } - } - return t; // Array - }, - forEachRev: function(/*Array|String*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: executes a provided function once per array element. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - for(var i = a.length - 1; i >= 0; f.call(o, a[i], i, a), --i); - }, - mapRev: function(/*Array|String*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: creates a new array with the results of calling - // a provided function on every element in this array. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - var n = a.length, t = new Array(n); - for(var i = n - 1, j = 0; i >= 0; t[j++] = f.call(o, a[i], i, a), --i); - return t; // Array - }, - everyRev: function(/*Array|String*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: tests whether all elements in the array pass the test - // implemented by the provided function. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - for(var i = a.length - 1; i >= 0; --i){ - if(!f.call(o, a[i], i, a)){ - return false; // Boolean - } - } - return true; // Boolean - }, - someRev: function(/*Array|String*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: tests whether some element in the array passes the test - // implemented by the provided function. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - for(var i = a.length - 1; i >= 0; --i){ - if(f.call(o, a[i], i, a)){ - return true; // Boolean - } - } - return false; // Boolean - } - }); -})(); - -} diff --git a/includes/js/dojox/lang/functional/scan.js b/includes/js/dojox/lang/functional/scan.js deleted file mode 100644 index 65a3ef2..0000000 --- a/includes/js/dojox/lang/functional/scan.js +++ /dev/null @@ -1,84 +0,0 @@ -if(!dojo._hasResource["dojox.lang.functional.scan"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.functional.scan"] = true; -dojo.provide("dojox.lang.functional.scan"); - -dojo.require("dojox.lang.functional.lambda"); - -// This module adds high-level functions and related constructs: -// - "scan" family of functions - -// Notes: -// - missing high-level functions are provided with the compatible API: -// scanl, scanl1, scanr, scanr1 - -// Defined methods: -// - take any valid lambda argument as the functional argument -// - operate on dense arrays -// - take a string as the array argument -// - take an iterator objects as the array argument (only scanl, and scanl1) - -(function(){ - var d = dojo, df = dojox.lang.functional; - - d.mixin(df, { - // classic reduce-class functions - scanl: function(/*Array|String|Object*/ a, /*Function|String|Array*/ f, /*Object*/ z, /*Object?*/ o){ - // summary: repeatedly applies a binary function to an array from left - // to right using a seed value as a starting point; returns an array - // of values produced by foldl() at that point. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - var t, n; - if(d.isArray(a)){ - t = new Array((n = a.length) + 1); - t[0] = z; - for(var i = 0; i < n; z = f.call(o, z, a[i], i, a), t[++i] = z); - }else{ - t = [z]; - for(var i = 0; a.hasNext(); t.push(z = f.call(o, z, a.next(), i++))); - } - return t; // Array - }, - scanl1: function(/*Array|String|Object*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: repeatedly applies a binary function to an array from left - // to right; returns an array of values produced by foldl1() at that - // point. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - var t, n, z; - if(d.isArray(a)){ - t = new Array(n = a.length); - t[0] = z = a[0]; - for(var i = 1; i < n; t[i] = z = f.call(o, z, a[i], i, a), ++i); - }else if(a.hasNext()){ - t = [z = a.next()]; - for(var i = 1; a.hasNext(); t.push(z = f.call(o, z, a.next(), i++))); - } - return t; // Array - }, - scanr: function(/*Array|String*/ a, /*Function|String|Array*/ f, /*Object*/ z, /*Object?*/ o){ - // summary: repeatedly applies a binary function to an array from right - // to left using a seed value as a starting point; returns an array - // of values produced by foldr() at that point. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - var n = a.length, t = new Array(n + 1); - t[n] = z; - for(var i = n; i > 0; --i, z = f.call(o, z, a[i], i, a), t[i] = z); - return t; // Array - }, - scanr1: function(/*Array|String*/ a, /*Function|String|Array*/ f, /*Object?*/ o){ - // summary: repeatedly applies a binary function to an array from right - // to left; returns an array of values produced by foldr1() at that - // point. - if(typeof a == "string"){ a = a.split(""); } - o = o || d.global; f = df.lambda(f); - var n = a.length, t = new Array(n), z = a[n - 1]; - t[n - 1] = z; - for(var i = n - 1; i > 0; --i, z = f.call(o, z, a[i], i, a), t[i] = z); - return t; // Array - } - }); -})(); - -} diff --git a/includes/js/dojox/lang/functional/sequence.js b/includes/js/dojox/lang/functional/sequence.js deleted file mode 100644 index c5aaa1c..0000000 --- a/includes/js/dojox/lang/functional/sequence.js +++ /dev/null @@ -1,38 +0,0 @@ -if(!dojo._hasResource["dojox.lang.functional.sequence"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.functional.sequence"] = true; -dojo.provide("dojox.lang.functional.sequence"); - -dojo.require("dojox.lang.functional.lambda"); - -// This module adds high-level functions and related constructs: -// - sequence generators - -// Defined methods: -// - take any valid lambda argument as the functional argument - -(function(){ - var d = dojo, df = dojox.lang.functional; - - d.mixin(df, { - // sequence generators - repeat: function(/*Number*/ n, /*Function|String|Array*/ f, /*Object*/ z, /*Object?*/ o){ - // summary: builds an array by repeatedly applying a unary function N times - // with a seed value Z. - o = o || d.global; f = df.lambda(f); - var t = new Array(n); - t[0] = z; - for(var i = 1; i < n; t[i] = z = f.call(o, z), ++i); - return t; // Array - }, - until: function(/*Function|String|Array*/ pr, /*Function|String|Array*/ f, /*Object*/ z, /*Object?*/ o){ - // summary: builds an array by repeatedly applying a unary function with - // a seed value Z until the predicate is satisfied. - o = o || d.global; f = df.lambda(f); pr = df.lambda(pr); - var t = []; - for(; !pr.call(o, z); t.push(z), z = f.call(o, z)); - return t; // Array - } - }); -})(); - -} diff --git a/includes/js/dojox/lang/functional/zip.js b/includes/js/dojox/lang/functional/zip.js deleted file mode 100644 index 523f400..0000000 --- a/includes/js/dojox/lang/functional/zip.js +++ /dev/null @@ -1,45 +0,0 @@ -if(!dojo._hasResource["dojox.lang.functional.zip"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.functional.zip"] = true; -dojo.provide("dojox.lang.functional.zip"); - -// This module adds high-level functions and related constructs: -// - zip combiners - -// Defined methods: -// - operate on dense arrays - -(function(){ - var df = dojox.lang.functional; - - dojo.mixin(df, { - // combiners - zip: function(){ - // summary: returns an array of arrays, where the i-th array - // contains the i-th element from each of the argument arrays. - // description: This is the venerable zip combiner (for example, - // see Python documentation for general details). The returned - // array is truncated to match the length of the shortest input - // array. - var n = arguments[0].length, m = arguments.length, i; - for(i = 1; i < m; n = Math.min(n, arguments[i++].length)); - var t = new Array(n), j; - for(i = 0; i < n; ++i){ - var p = new Array(m); - for(j = 0; j < m; p[j] = arguments[j][i], ++j); - t[i] = p; - } - return t; // Array - }, - unzip: function(/*Array*/ a){ - // summary: similar to dojox.lang.functional.zip(), but takes - // a single array of arrays as the input. - // description: This function is similar to dojox.lang.functional.zip() - // and can be used to unzip objects packed by - // dojox.lang.functional.zip(). It is here mostly to provide - // a short-cut for the different method signature. - return df.zip.apply(null, a); // Array - } - }); -})(); - -} diff --git a/includes/js/dojox/lang/tests/array.js b/includes/js/dojox/lang/tests/array.js deleted file mode 100644 index 292210c..0000000 --- a/includes/js/dojox/lang/tests/array.js +++ /dev/null @@ -1,84 +0,0 @@ -if(!dojo._hasResource["dojox.lang.tests.array"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.tests.array"] = true; -dojo.provide("dojox.lang.tests.array"); - -dojo.require("dojox.lang.functional"); -dojo.require("dojox.lang.functional.fold"); -dojo.require("dojox.lang.functional.reversed"); - -(function(){ - var df = dojox.lang.functional, v, isOdd = "%2"; - - var revArrayIter = function(array){ - this.array = array; - this.position = array.length - 1; - }; - dojo.extend(revArrayIter, { - hasNext: df.lambda("this.position >= 0"), - next: df.lambda("this.array[this.position--]") - }); - - tests.register("dojox.lang.tests.array", [ - function testFilter1(t){ t.assertEqual(df.filter([1, 2, 3], isOdd), [1, 3]); }, - function testFilter2(t){ t.assertEqual(df.filter([1, 2, 3], "%2==0"), [2]); }, - function testFilterIter(t){ - var iter = new revArrayIter([1, 2, 3]); - t.assertEqual(df.filter(iter, isOdd), [3, 1]); - }, - function testFilterRev(t){ - var iter = new revArrayIter([1, 2, 3]); - t.assertEqual(df.filter(iter, isOdd), df.filterRev([1, 2, 3], isOdd)); - }, - - function testForEach(t){ - t.assertEqual((v = [], df.forEach([1, 2, 3], function(x){ v.push(x); }), v), [1, 2, 3]); - }, - function testForEachIter(t){ - var iter = new revArrayIter([1, 2, 3]); - t.assertEqual((v = [], df.forEach(iter, function(x){ v.push(x); }), v), [3, 2, 1]); - }, - function testForEachRev(t){ - t.assertEqual((v = [], df.forEachRev([1, 2, 3], function(x){ v.push(x); }), v), [3, 2, 1]); - }, - - function testMap(t){ t.assertEqual(df.map([1, 2, 3], "+3"), [4, 5, 6]); }, - function testMapIter(t){ - var iter = new revArrayIter([1, 2, 3]); - t.assertEqual(df.map(iter, "+3"), [6, 5, 4]); - }, - function testMapRev(t){ - var iter = new revArrayIter([1, 2, 3]); - t.assertEqual(df.map(iter, "+3"), df.mapRev([1, 2, 3], "+3")); - }, - - function testEvery1(t){ t.assertFalse(df.every([1, 2, 3], isOdd)); }, - function testEvery2(t){ t.assertTrue(df.every([1, 3, 5], isOdd)); }, - function testEveryIter(t){ - var iter = new revArrayIter([1, 3, 5]); - t.assertTrue(df.every(iter, isOdd)); - }, - function testEveryRev1(t){ t.assertFalse(df.everyRev([1, 2, 3], isOdd)); }, - function testEveryRev2(t){ t.assertTrue(df.everyRev([1, 3, 5], isOdd)); }, - - function testSome1(t){ t.assertFalse(df.some([2, 4, 6], isOdd)); }, - function testSome2(t){ t.assertTrue(df.some([1, 2, 3], isOdd)); }, - function testSomeIter(t){ - var iter = new revArrayIter([1, 2, 3]); - t.assertTrue(df.some(iter, isOdd)); - }, - function testSomeRev1(t){ t.assertFalse(df.someRev([2, 4, 6], isOdd)); }, - function testSomeRev2(t){ t.assertTrue(df.someRev([1, 2, 3], isOdd)); }, - - function testReduce1(t){ t.assertEqual(df.reduce([4, 2, 1], "x-y"), 1); }, - function testReduce2(t){ t.assertEqual(df.reduce([4, 2, 1], "x-y", 8), 1); }, - function testReduceIter(t){ - var iter = new revArrayIter([1, 2, 4]); - t.assertEqual(df.reduce(iter, "x-y"), 1); - }, - - function testReduceRight1(t){ t.assertEqual(df.reduceRight([4, 2, 1], "x-y"), -5); }, - function testReduceRight2(t){ t.assertEqual(df.reduceRight([4, 2, 1], "x-y", 8), 1); } - ]); -})(); - -} diff --git a/includes/js/dojox/lang/tests/curry.js b/includes/js/dojox/lang/tests/curry.js deleted file mode 100644 index cb6fa6a..0000000 --- a/includes/js/dojox/lang/tests/curry.js +++ /dev/null @@ -1,31 +0,0 @@ -if(!dojo._hasResource["dojox.lang.tests.curry"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.tests.curry"] = true; -dojo.provide("dojox.lang.tests.curry"); - -dojo.require("dojox.lang.functional.curry"); - -(function(){ - var df = dojox.lang.functional, add5 = df.curry("+")(5), sub3 = df.curry("_-3"), fun = df.lambda("100*a + 10*b + c"); - tests.register("dojox.lang.tests.curry", [ - function testCurry1(t){ t.assertEqual(df.curry("+")(1, 2), 3); }, - function testCurry2(t){ t.assertEqual(df.curry("+")(1)(2), 3); }, - function testCurry3(t){ t.assertEqual(df.curry("+")(1, 2, 3), 3); }, - function testCurry4(t){ t.assertEqual(add5(1), 6); }, - function testCurry5(t){ t.assertEqual(add5(3), 8); }, - function testCurry6(t){ t.assertEqual(add5(5), 10); }, - function testCurry7(t){ t.assertEqual(sub3(1), -2); }, - function testCurry8(t){ t.assertEqual(sub3(3), 0); }, - function testCurry9(t){ t.assertEqual(sub3(5), 2); }, - - function testPartial1(t){ t.assertEqual(df.partial(fun, 1, 2, 3)(), 123); }, - function testPartial2(t){ t.assertEqual(df.partial(fun, 1, 2, df.arg)(3), 123); }, - function testPartial3(t){ t.assertEqual(df.partial(fun, 1, df.arg, 3)(2), 123); }, - function testPartial4(t){ t.assertEqual(df.partial(fun, 1, df.arg, df.arg)(2, 3), 123); }, - function testPartial5(t){ t.assertEqual(df.partial(fun, df.arg, 2, 3)(1), 123); }, - function testPartial6(t){ t.assertEqual(df.partial(fun, df.arg, 2, df.arg)(1, 3), 123); }, - function testPartial7(t){ t.assertEqual(df.partial(fun, df.arg, df.arg, 3)(1, 2), 123); }, - function testPartial8(t){ t.assertEqual(df.partial(fun, df.arg, df.arg, df.arg)(1, 2, 3), 123); } - ]); -})(); - -} diff --git a/includes/js/dojox/lang/tests/fold.js b/includes/js/dojox/lang/tests/fold.js deleted file mode 100644 index e766c62..0000000 --- a/includes/js/dojox/lang/tests/fold.js +++ /dev/null @@ -1,64 +0,0 @@ -if(!dojo._hasResource["dojox.lang.tests.fold"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.tests.fold"] = true; -dojo.provide("dojox.lang.tests.fold"); - -dojo.require("dojox.lang.functional.fold"); -dojo.require("dojox.lang.functional.scan"); -dojo.require("dojox.lang.functional.curry"); - -(function(){ - var df = dojox.lang.functional, a = df.arg; - - var revArrayIter = function(array){ - this.array = array; - this.position = array.length - 1; - }; - dojo.extend(revArrayIter, { - hasNext: df.lambda("this.position >= 0"), - next: df.lambda("this.array[this.position--]") - }); - - tests.register("dojox.lang.tests.fold", [ - function testFoldl1(t){ t.assertEqual(df.foldl([1, 2, 3], "+", 0), 6); }, - function testFoldl2(t){ t.assertEqual(df.foldl1([1, 2, 3], "*"), 6); }, - function testFoldl3(t){ t.assertEqual(df.foldl1([1, 2, 3], "/"), 1/6); }, - function testFoldl4(t){ t.assertEqual(df.foldl1([1, 2, 3], df.partial(Math.max, a, a)), 3); }, - function testFoldl5(t){ t.assertEqual(df.foldl1([1, 2, 3], df.partial(Math.min, a, a)), 1); }, - - function testFoldlIter(t){ - var iter = new revArrayIter([1, 2, 3]); - t.assertEqual(df.foldl(iter, "+", 0), 6); - }, - function testFoldl1Iter(t){ - var iter = new revArrayIter([1, 2, 3]); - t.assertEqual(df.foldl1(iter, "/"), 3/2); - }, - - function testFoldr1(t){ t.assertEqual(df.foldr([1, 2, 3], "+", 0), 6); }, - function testFoldr2(t){ t.assertEqual(df.foldr1([1, 2, 3], "*"), 6); }, - function testFoldr3(t){ t.assertEqual(df.foldr1([1, 2, 3], "/"), 3/2); }, - function testFoldr4(t){ t.assertEqual(df.foldr1([1, 2, 3], df.partial(Math.max, a, a)), 3); }, - function testFoldr5(t){ t.assertEqual(df.foldr1([1, 2, 3], df.partial(Math.min, a, a)), 1); }, - - function testScanl1(t){ t.assertEqual(df.scanl([1, 2, 3], "+", 0), [0, 1, 3, 6]); }, - function testScanl2(t){ t.assertEqual(df.scanl1([1, 2, 3], "*"), [1, 2, 6]); }, - function testScanl3(t){ t.assertEqual(df.scanl1([1, 2, 3], df.partial(Math.max, a, a)), [1, 2, 3]); }, - function testScanl4(t){ t.assertEqual(df.scanl1([1, 2, 3], df.partial(Math.min, a, a)), [1, 1, 1]); }, - - function testScanlIter(t){ - var iter = new revArrayIter([1, 2, 3]); - t.assertEqual(df.scanl(iter, "+", 0), [0, 3, 5, 6]); - }, - function testScanl1Iter(t){ - var iter = new revArrayIter([1, 2, 3]); - t.assertEqual(df.scanl1(iter, "*"), [3, 6, 6]); - }, - - function testScanr1(t){ t.assertEqual(df.scanr([1, 2, 3], "+", 0), [6, 5, 3, 0]); }, - function testScanr2(t){ t.assertEqual(df.scanr1([1, 2, 3], "*"), [6, 6, 3]); }, - function testScanr3(t){ t.assertEqual(df.scanr1([1, 2, 3], df.partial(Math.max, a, a)), [3, 3, 3]); }, - function testScanr4(t){ t.assertEqual(df.scanr1([1, 2, 3], df.partial(Math.min, a, a)), [1, 2, 3]); } - ]); -})(); - -} diff --git a/includes/js/dojox/lang/tests/fun_perf.html b/includes/js/dojox/lang/tests/fun_perf.html deleted file mode 100644 index 9d19a60..0000000 --- a/includes/js/dojox/lang/tests/fun_perf.html +++ /dev/null @@ -1,176 +0,0 @@ -<html> - <head> - <title>clocking fun</title> - <style type="text/css"> - @import "../../../dojo/resources/dojo.css"; - </style> - <script type="text/javascript" src="../../../dojo/dojo.js" djConfig="isDebug:true"></script> - <script type="text/javascript" src="../functional.js"></script> - <script type="text/javascript" src="../functional/sequence.js"></script> - <script type="text/javascript" src="../functional/fold.js"></script> - <script type="text/javascript"> - dojo.addOnLoad(function(){ - var LEN = 2000, ITER = 200, b, e, tests = {}, - df = dojox.lang.functional, - sample = df.repeat(LEN, "+1", 0), - add = df.lambda("+"), - isOdd = df.lambda("%2"); - - var clock = function(body){ - var b = new Date(); - body(); - var e = new Date(); - return e.getTime() - b.getTime(); // in ms - }; - - var log = function(name, body){ - b = new Date(); - var ms = clock(body); - e = new Date(); - console.log(name + ":", ms); - }; - - // filter - tests["raw filter"] = function(){ - for(var i = 0; i < ITER; ++i){ - var t = []; - for(var j = 0; j < sample.length; ++j){ - if(isOdd(sample[j])){ t.push(sample[j]); } - } - } - }; - tests["dojo.filter"] = function(){ - for(var i = 0; i < ITER; ++i){ - dojo.filter(sample, isOdd); - } - }; - tests["df.filter"] = function(){ - for(var i = 0; i < ITER; ++i){ - df.filter(sample, isOdd); - } - }; - if(sample.filter){ - tests["Array.prototype.filter"] = function(){ - for(var i = 0; i < ITER; ++i){ - sample.filter(isOdd); - } - }; - } - - // map - tests["raw map"] = function(){ - for(var i = 0; i < ITER; ++i){ - var t = []; - for(var j = 0; j < sample.length; ++j){ - t.push(isOdd(sample[j])); - } - } - }; - tests["dojo.map"] = function(){ - for(var i = 0; i < ITER; ++i){ - dojo.map(sample, isOdd); - } - }; - tests["df.map"] = function(){ - for(var i = 0; i < ITER; ++i){ - df.map(sample, isOdd); - } - }; - if(sample.map){ - tests["Array.prototype.map"] = function(){ - for(var i = 0; i < ITER; ++i){ - sample.map(isOdd); - } - }; - } - - // forEach - tests["raw forEach"] = function(){ - for(var i = 0; i < ITER; ++i){ - for(var j = 0; j < sample.length; ++j){ - isOdd(sample[j]); - } - } - }; - tests["dojo.forEach"] = function(){ - for(var i = 0; i < ITER; ++i){ - dojo.forEach(sample, isOdd); - } - }; - tests["df.forEach"] = function(){ - for(var i = 0; i < ITER; ++i){ - df.forEach(sample, isOdd); - } - }; - if(sample.forEach){ - tests["Array.prototype.forEach"] = function(){ - for(var i = 0; i < ITER; ++i){ - sample.forEach(isOdd); - } - }; - } - - // reduce - tests["raw reduce"] = function(){ - for(var i = 0; i < ITER; ++i){ - var z = 0; - for(var j = 0; j < sample.length; ++j){ - z = add(z, sample[j]); - } - } - }; - tests["df.reduce"] = function(){ - for(var i = 0; i < ITER; ++i){ - df.reduce(sample, add, 0); - } - }; - if(sample.reduce){ - tests["Array.prototype.reduce"] = function(){ - for(var i = 0; i < ITER; ++i){ - sample.reduce(add, 0); - } - }; - } - - // reduceRight - tests["raw reduceRight"] = function(){ - for(var i = 0; i < ITER; ++i){ - var z = 0; - for(var j = sample.length - 1; j >= 0; --j){ - z = add(z, sample[j]); - } - } - }; - tests["df.reduceRight"] = function(){ - for(var i = 0; i < ITER; ++i){ - df.reduceRight(sample, add, 0); - } - }; - if(sample.reduceRight){ - tests["Array.prototype.reduceRight"] = function(){ - for(var i = 0; i < ITER; ++i){ - sample.reduceRight(add, 0); - } - }; - } - - var keys = df.keys(tests), i = 0; - - var doTest = function(){ - log(keys[i], tests[keys[i]]); - ++i; - if(i < keys.length){ - setTimeout(doTest, 1); - }else{ - console.log("that's all"); - } - }; - - setTimeout(doTest, 1); - }); - </script> - </head> - <body> - <p>This test is meant to run with Firebug.</p> - </body> -</html> diff --git a/includes/js/dojox/lang/tests/lambda.js b/includes/js/dojox/lang/tests/lambda.js deleted file mode 100644 index 7e5e7ed..0000000 --- a/includes/js/dojox/lang/tests/lambda.js +++ /dev/null @@ -1,24 +0,0 @@ -if(!dojo._hasResource["dojox.lang.tests.lambda"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.tests.lambda"] = true; -dojo.provide("dojox.lang.tests.lambda"); - -dojo.require("dojox.lang.functional"); -dojo.require("dojox.lang.functional.sequence"); - -(function(){ - var df = dojox.lang.functional; - tests.register("dojox.lang.tests.lambda", [ - function testLambda1(t){ t.assertEqual(df.repeat(3, "3*", 1), [1, 3, 9]); }, - function testLambda2(t){ t.assertEqual(df.repeat(3, "*3", 1), [1, 3, 9]); }, - function testLambda3(t){ t.assertEqual(df.repeat(3, "_*3", 1), [1, 3, 9]); }, - function testLambda4(t){ t.assertEqual(df.repeat(3, "3*_", 1), [1, 3, 9]); }, - function testLambda5(t){ t.assertEqual(df.repeat(3, "n->n*3", 1), [1, 3, 9]); }, - function testLambda6(t){ t.assertEqual(df.repeat(3, "n*3", 1), [1, 3, 9]); }, - function testLambda7(t){ t.assertEqual(df.repeat(3, "3*m", 1), [1, 3, 9]); }, - function testLambda8(t){ t.assertEqual(df.repeat(3, "->1", 1), [1, 1, 1]); }, - function testLambda9(t){ t.assertEqual(df.repeat(3, function(n){ return n * 3; }, 1), [1, 3, 9]); }, - function testLambda10(t){ t.assertEqual(df.repeat(3, ["_-1", ["*3"]], 1), [1, 2, 5]); } - ]); -})(); - -} diff --git a/includes/js/dojox/lang/tests/listcomp.js b/includes/js/dojox/lang/tests/listcomp.js deleted file mode 100644 index 45cd8ab..0000000 --- a/includes/js/dojox/lang/tests/listcomp.js +++ /dev/null @@ -1,28 +0,0 @@ -if(!dojo._hasResource["dojox.lang.tests.listcomp"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.tests.listcomp"] = true; -dojo.provide("dojox.lang.tests.listcomp"); - -dojo.require("dojox.lang.functional.listcomp"); -dojo.require("dojox.lang.functional.sequence"); - -(function(){ - var df = dojox.lang.functional; - tests.register("dojox.lang.tests.listcomp", [ - function testIterator1(t){ t.assertEqual(df.repeat(3, function(n){ return n + 1; }, 0), [0, 1, 2]); }, - function testIterator2(t){ t.assertEqual(df.repeat(3, function(n){ return n * 3; }, 1), [1, 3, 9]); }, - function testIterator3(t){ t.assertEqual(df.until(function(n){ return n > 10; }, function(n){ return n * 3; }, 1), [1, 3, 9]); }, - - function testListcomp1(t){ t.assertEqual(df.listcomp("i for(var i=0; i<3; ++i)"), [0, 1, 2]); }, - function testListcomp2(t){ t.assertEqual(df.listcomp("i*j for(var i=0; i<3; ++i) for(var j=0; j<3; ++j)"), [0, 0, 0, 0, 1, 2, 0, 2, 4]); }, - function testListcomp3(t){ t.assertEqual(df.listcomp("i*j for(var i=0; i<3; ++i) if(i%2==1) for(var j=0; j<3; ++j)"), [0, 1, 2]); }, - function testListcomp4(t){ t.assertEqual(df.listcomp("i+j for(var i=0; i<3; ++i) for(var j=0; j<3; ++j)"), [0, 1, 2, 1, 2, 3, 2, 3, 4]); }, - function testListcomp5(t){ t.assertEqual(df.listcomp("i+j for(var i=0; i<3; ++i) if(i%2==1) for(var j=0; j<3; ++j)"), [1, 2, 3]); }, - function testListcomp6(t){ t.assertEqual(df.listcomp("i for(i=0; i<3; ++i)"), [0, 1, 2]); }, - function testListcomp7(t){ t.assertEqual(df.listcomp("i*j for(i=0; i<3; ++i) for(j=0; j<3; ++j)"), [0, 0, 0, 0, 1, 2, 0, 2, 4]); }, - function testListcomp8(t){ t.assertEqual(df.listcomp("i*j for(i=0; i<3; ++i) if(i%2==1) for(j=0; j<3; ++j)"), [0, 1, 2]); }, - function testListcomp9(t){ t.assertEqual(df.listcomp("i+j for(i=0; i<3; ++i) for(j=0; j<3; ++j)"), [0, 1, 2, 1, 2, 3, 2, 3, 4]); }, - function testListcomp10(t){ t.assertEqual(df.listcomp("i+j for(i=0; i<3; ++i) if(i%2==1) for(j=0; j<3; ++j)"), [1, 2, 3]); } - ]); -})(); - -} diff --git a/includes/js/dojox/lang/tests/main.js b/includes/js/dojox/lang/tests/main.js deleted file mode 100644 index 1f0d7ab..0000000 --- a/includes/js/dojox/lang/tests/main.js +++ /dev/null @@ -1,17 +0,0 @@ -if(!dojo._hasResource["dojox.lang.tests.main"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.tests.main"] = true; -dojo.provide("dojox.lang.tests.main"); - -try{ - // functional block - dojo.require("dojox.lang.tests.listcomp"); - dojo.require("dojox.lang.tests.lambda"); - dojo.require("dojox.lang.tests.fold"); - dojo.require("dojox.lang.tests.curry"); - dojo.require("dojox.lang.tests.misc"); - dojo.require("dojox.lang.tests.array"); -}catch(e){ - doh.debug(e); -} - -} diff --git a/includes/js/dojox/lang/tests/misc.js b/includes/js/dojox/lang/tests/misc.js deleted file mode 100644 index f17ea8c..0000000 --- a/includes/js/dojox/lang/tests/misc.js +++ /dev/null @@ -1,31 +0,0 @@ -if(!dojo._hasResource["dojox.lang.tests.misc"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.tests.misc"] = true; -dojo.provide("dojox.lang.tests.misc"); - -dojo.require("dojox.lang.functional.object"); -dojo.require("dojox.lang.functional.zip"); - -(function(){ - var df = dojox.lang.functional, fun = df.lambda("100*a + 10*b + c"), result = []; - df.forIn({a: 1, b: 2}, function(v, i){ result.push("[" + i + "] = " + v); }); - - tests.register("dojox.lang.tests.misc", [ - function testZip1(t){ t.assertEqual(df.zip([1, 2, 3], [4, 5, 6]), [[1, 4], [2, 5], [3, 6]]); }, - function testZip2(t){ t.assertEqual(df.zip([1, 2], [3, 4], [5, 6]), [[1, 3, 5], [2, 4, 6]]); }, - - function testUnzip1(t){ t.assertEqual(df.unzip([[1, 4], [2, 5], [3, 6]]), [[1, 2, 3], [4, 5, 6]]); }, - function testUnzip2(t){ t.assertEqual(df.unzip([[1, 3, 5], [2, 4, 6]]), [[1, 2], [3, 4], [5, 6]]); }, - - function testMixer(t){ t.assertEqual(df.mixer(fun, [1, 2, 0])(3, 1, 2), 123); }, - function testFlip(t){ t.assertEqual(df.flip(fun)(3, 2, 1), 123); }, - - function testCompose1(t){ t.assertEqual(df.lambda(["+5", "*3"])(8), 8 * 3 + 5); }, - function testCompose2(t){ t.assertEqual(df.lambda(["+5", "*3"].reverse())(8), (8 + 5) * 3); }, - - function testForIn(t){ t.assertEqual(result.sort().join(", "), "[a] = 1, [b] = 2"); }, - function testKeys(t){ t.assertEqual(df.keys({a: 1, b: 2, c: 3}), ["a", "b", "c"]); }, - function testValues(t){ t.assertEqual(df.values({a: 1, b: 2, c: 3}), [1, 2, 3]); } - ]); -})(); - -} diff --git a/includes/js/dojox/lang/tests/runTests.html b/includes/js/dojox/lang/tests/runTests.html deleted file mode 100644 index 32fdfdb..0000000 --- a/includes/js/dojox/lang/tests/runTests.html +++ /dev/null @@ -1,9 +0,0 @@ -<html>
- <head>
- <title>DojoX Functional Unit Test Runner</title>
- <meta http-equiv="REFRESH" content="0;url=../../../util/doh/runner.html?testModule=dojox.lang.tests.main" /> - </head>
- <body>
- <p>Redirecting to D.O.H runner.</p>
- </body>
-</html> diff --git a/includes/js/dojox/lang/utils.js b/includes/js/dojox/lang/utils.js deleted file mode 100644 index b7926c6..0000000 --- a/includes/js/dojox/lang/utils.js +++ /dev/null @@ -1,54 +0,0 @@ -if(!dojo._hasResource["dojox.lang.utils"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.lang.utils"] = true; -dojo.provide("dojox.lang.utils"); - -(function(){ - var empty = {}, du = dojox.lang.utils; - - dojo.mixin(dojox.lang.utils, { - coerceType: function(target, source){ - switch(typeof target){ - case "number": return Number(eval("(" + source + ")")); - case "string": return String(source); - case "boolean": return Boolean(eval("(" + source + ")")); - } - return eval("(" + source + ")"); - }, - - updateWithObject: function(target, source, conv){ - // summary: updates an existing object in place with properties from an "source" object. - // target: Object: the "target" object to be updated - // source: Object: the "source" object, whose properties will be used to source the existed object. - // conv: Boolean?: force conversion to the original type - if(!source){ return target; } - for(var x in target){ - if(x in source && !(x in empty)){ - var t = target[x]; - if(t && typeof t == "object"){ - du.updateObject(t, source[x]); - }else{ - target[x] = conv ? du.coerceType(t, source[x]) : dojo.clone(source[x]); - } - } - } - return target; // Object - }, - - updateWithPattern: function(target, source, pattern, conv){ - // summary: updates an existing object in place with properties from an "source" object. - // target: Object: the "target" object to be updated - // source: Object: the "source" object, whose properties will be used to source the existed object. - // pattern: Array: an array of properties to be copied - // conv: Boolean?: force conversion to the original type - if(!source || !pattern){ return target; } - for(var x in pattern){ - if(x in source && !(x in empty)){ - target[x] = conv ? du.coerceType(pattern[x], source[x]) : dojo.clone(source[x]); - } - } - return target; // Object - } - }); -})(); - -} |