Make sure we always return when not confident

This commit is contained in:
Amjad Masad
2015-12-21 02:04:00 -08:00
parent 902d04b8f1
commit a5b9afbebe
2 changed files with 9 additions and 3 deletions

View File

@@ -99,11 +99,14 @@ export function evaluate(): { confident: boolean; value: any } {
if (expr) str += String(evaluate(expr));
}
if (confident) return str;
if (!confident) return;
return str;
}
if (path.isConditionalExpression()) {
if (evaluate(path.get("test"))) {
let testResult = evaluate(path.get("test"));
if (!confident) return;
if (testResult) {
return evaluate(path.get("consequent"));
} else {
return evaluate(path.get("alternate"));
@@ -162,6 +165,7 @@ export function evaluate(): { confident: boolean; value: any } {
}
let arg = evaluate(argument);
if (!confident) return;
switch (node.operator) {
case "!": return !arg;
case "+": return +arg;
@@ -218,7 +222,9 @@ export function evaluate(): { confident: boolean; value: any } {
if (path.isBinaryExpression()) {
let left = evaluate(path.get("left"));
if (!confident) return;
let right = evaluate(path.get("right"));
if (!confident) return;
switch (node.operator) {
case "-": return left - right;