From 5c58b52d40eb9aef0056a586505fbff51984682d Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Tue, 1 Sep 2015 23:29:04 -0400 Subject: [PATCH] evaluation: evaluate typeof UnaryExpression --- packages/babel/src/traversal/path/evaluation.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/babel/src/traversal/path/evaluation.js b/packages/babel/src/traversal/path/evaluation.js index f4c1828c9d..a27e4e24e5 100644 --- a/packages/babel/src/traversal/path/evaluation.js +++ b/packages/babel/src/traversal/path/evaluation.js @@ -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; + } } }