Merge pull request #2306 from hzoo/eval-typeof

evaluation: evaluate typeof
This commit is contained in:
Sebastian McKenzie 2015-09-03 15:49:31 +01:00
commit 436ba9b653

View File

@ -119,13 +119,20 @@ export function evaluate(): { confident: boolean; value: any } {
}
if (path.isUnaryExpression({ prefix: true })) {
var arg = evaluate(path.get("argument"));
var argument = path.get("argument");
var arg = evaluate(argument);
switch (node.operator) {
case "void": return undefined;
case "!": return !arg;
case "+": return +arg;
case "-": return -arg;
case "~": return ~arg;
case "typeof":
if (argument.isFunction()) {
return "function";
} else {
return typeof arg;
}
}
}