From: David Vazquez Date: Wed, 13 Feb 2013 22:47:53 +0000 (+0000) Subject: APPLY accepts symbols as function descriptor X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=236ddb0191495f44bb3d0df1062d377f9e603965;p=jscl.git APPLY accepts symbols as function descriptor --- diff --git a/ecmalisp.js b/ecmalisp.js index 47b7e16..856e920 100644 --- a/ecmalisp.js +++ b/ecmalisp.js @@ -696,10 +696,13 @@ var l62 = {name: "INITIAL-VALUE", 'package': 'KEYWORD'}; return (l13.fvalue(pv, v70) !== l5.value ? v71 : l61.fvalue(values, v69, (function(){ var tmp = v70; return tmp === l5.value? l5.value: tmp.cdr; - })(), l62.value, (v69)(pv, v71, (function(){ - var tmp = v70; - return tmp === l5.value? l5.value: tmp.car; - })()))); + })(), l62.value, (function(){ + var f = v69; + return (typeof f === 'function'? f: f.fvalue)(pv, v71, (function(){ + var tmp = v70; + return tmp === l5.value? l5.value: tmp.car; + })()) + })())); })(); })); return l61; @@ -976,10 +979,13 @@ var l77 = {name: "SENTINEL"}; return (function(){ return (function(){ while(v103 !== l5.value){ - v107(pv, (v102)(pv, (function(){ - var tmp = v103; - return tmp === l5.value? l5.value: tmp.car; - })())); + v107(pv, (function(){ + var f = v102; + return (typeof f === 'function'? f: f.fvalue)(pv, (function(){ + var tmp = v103; + return tmp === l5.value? l5.value: tmp.car; + })()) + })()); (v103 = (function(){ var tmp = v103; return tmp === l5.value? l5.value: tmp.cdr; @@ -1085,7 +1091,7 @@ var l79 = {name: "MAPCAR"}; args.push(tail.car); tail = tail.cdr; } - return f.apply(this, args); + return (typeof f === 'function'? f : f.fvalue).apply(this, args); })()); })(l76.fvalue(pv, (function(){ var symbol = l31; @@ -1462,10 +1468,13 @@ var l95 = {name: "REMOVE-IF"}; })((function (values,v160,v161){ checkArgs(arguments, 3); return (function(){ - return (l13.fvalue(pv, v161) !== l5.value ? l5.value : ((v160)(pv, (function(){ - var tmp = v161; - return tmp === l5.value? l5.value: tmp.car; - })()) !== l5.value ? l95.fvalue(values, v160, (function(){ + return (l13.fvalue(pv, v161) !== l5.value ? l5.value : ((function(){ + var f = v160; + return (typeof f === 'function'? f: f.fvalue)(pv, (function(){ + var tmp = v161; + return tmp === l5.value? l5.value: tmp.car; + })()) + })() !== l5.value ? l95.fvalue(values, v160, (function(){ var tmp = v161; return tmp === l5.value? l5.value: tmp.cdr; })()) : ({car: (function(){ @@ -1487,10 +1496,13 @@ var l96 = {name: "REMOVE-IF-NOT"}; })((function (values,v163,v164){ checkArgs(arguments, 3); return (function(){ - return (l13.fvalue(pv, v164) !== l5.value ? l5.value : ((v163)(pv, (function(){ - var tmp = v164; - return tmp === l5.value? l5.value: tmp.car; - })()) !== l5.value ? ({car: (function(){ + return (l13.fvalue(pv, v164) !== l5.value ? l5.value : ((function(){ + var f = v163; + return (typeof f === 'function'? f: f.fvalue)(pv, (function(){ + var tmp = v164; + return tmp === l5.value? l5.value: tmp.car; + })()) + })() !== l5.value ? ({car: (function(){ var tmp = v164; return tmp === l5.value? l5.value: tmp.car; })(), cdr: l96.fvalue(pv, v163, (function(){ @@ -1606,15 +1618,18 @@ var l100 = {name: "SOME"}; if (typeof x2 !== 'number') throw 'Not a number!'; return (x1