Merge evalCond scheme-style fix
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 3m15s
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 3m15s
This commit is contained in:
@@ -506,11 +506,23 @@
|
|||||||
return local;
|
return local;
|
||||||
}
|
}
|
||||||
function evalCond(clauses, env) {
|
function evalCond(clauses, env) {
|
||||||
for (var i = 0; i < clauses.length; i += 2) {
|
// Detect scheme-style ((test body) ...) vs clojure-style (test body test body ...)
|
||||||
var test = clauses[i];
|
var scheme = clauses.length > 0 && Array.isArray(clauses[0]) && clauses[0].length === 2;
|
||||||
if (isSym(test) && test.name === ":else") return clauses[i + 1];
|
if (scheme) {
|
||||||
if (isKw(test) && test.name === "else") return clauses[i + 1];
|
for (var i = 0; i < clauses.length; i++) {
|
||||||
if (isSxTruthy(trampoline(evalExpr(test, env)))) return clauses[i + 1];
|
var clause = clauses[i];
|
||||||
|
var test = clause[0], body = clause[1];
|
||||||
|
if (isSym(test) && (test.name === "else" || test.name === ":else")) return body;
|
||||||
|
if (isKw(test) && test.name === "else") return body;
|
||||||
|
if (isSxTruthy(trampoline(evalExpr(test, env)))) return body;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (var i = 0; i < clauses.length; i += 2) {
|
||||||
|
var test = clauses[i];
|
||||||
|
if (isSym(test) && test.name === ":else") return clauses[i + 1];
|
||||||
|
if (isKw(test) && test.name === "else") return clauses[i + 1];
|
||||||
|
if (isSxTruthy(trampoline(evalExpr(test, env)))) return clauses[i + 1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1836,11 +1836,23 @@ PLATFORM_JS_POST = '''
|
|||||||
return local;
|
return local;
|
||||||
}
|
}
|
||||||
function evalCond(clauses, env) {
|
function evalCond(clauses, env) {
|
||||||
for (var i = 0; i < clauses.length; i += 2) {
|
// Detect scheme-style ((test body) ...) vs clojure-style (test body test body ...)
|
||||||
var test = clauses[i];
|
var scheme = clauses.length > 0 && Array.isArray(clauses[0]) && clauses[0].length === 2;
|
||||||
if (isSym(test) && test.name === ":else") return clauses[i + 1];
|
if (scheme) {
|
||||||
if (isKw(test) && test.name === "else") return clauses[i + 1];
|
for (var i = 0; i < clauses.length; i++) {
|
||||||
if (isSxTruthy(trampoline(evalExpr(test, env)))) return clauses[i + 1];
|
var clause = clauses[i];
|
||||||
|
var test = clause[0], body = clause[1];
|
||||||
|
if (isSym(test) && (test.name === "else" || test.name === ":else")) return body;
|
||||||
|
if (isKw(test) && test.name === "else") return body;
|
||||||
|
if (isSxTruthy(trampoline(evalExpr(test, env)))) return body;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (var i = 0; i < clauses.length; i += 2) {
|
||||||
|
var test = clauses[i];
|
||||||
|
if (isSym(test) && test.name === ":else") return clauses[i + 1];
|
||||||
|
if (isKw(test) && test.name === "else") return clauses[i + 1];
|
||||||
|
if (isSxTruthy(trampoline(evalExpr(test, env)))) return clauses[i + 1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user