was.js – Blame information for rev 22

Subversion Repositories:
Rev:
Rev Author Line No. Line
14 office 1 /*************************************************************************/
2 /* Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3 */
3 /*************************************************************************/
4 /* fuss/lambda_calculus/functional_programming/aggregators @ grimore.org */
5 /*************************************************************************/
22 office 6 function wasSwitch(q, d, ...c) {
19 office 7 if(c.length % 2 !== 0) {
8 throw "Pairs of predicates expected for cases";
9 }
10  
22 office 11 (Array.isArray(this) ? this : [ this ]).forEach((s) => {
19 office 12 var m = false;
13 for(var i = 0; i < c.length; i += 2) {
14 if(!c[i](s)) {
15 continue;
16 }
17 if(!c[i + 1](s)) {
18 continue;
19 }
20 m = true;
21 }
22  
23 if(!m) {
24 d(s);
25 }
26 });
22 office 27 }
28  
29 // Vanilla ES6 JavaScript
30 if (!Array.prototype.switch) {
31 Array.prototype.switch = wasSwitch;
32 }
33 // jQuery
34 $.extend({
35 switch: wasSwitch
36 });
37 // Node.JS
38 module.exports = {
39 switch: wasSwitch
20 office 40 };