Reviewers: metaweta,
Description: Added code to conservatively figure out what a typeof <the expression> would yield, and conservative folding. These help with static analysis and code optimization. And added a static utility method Operation.is(ParseTreeNode, Operator) to replace a frequently appearing but hard to read idiom. Please review this at http://codereview.appspot.com/135053 Affected files: M src/com/google/caja/parser/js/AbstractExpression.java M src/com/google/caja/parser/js/ArrayConstructor.java M src/com/google/caja/parser/js/BooleanLiteral.java M src/com/google/caja/parser/js/CajoledModuleExpression.java M src/com/google/caja/parser/js/Declaration.java M src/com/google/caja/parser/js/Expression.java M src/com/google/caja/parser/js/FunctionConstructor.java M src/com/google/caja/parser/js/FunctionDeclaration.java M src/com/google/caja/parser/js/NoChildren.java M src/com/google/caja/parser/js/NullLiteral.java M src/com/google/caja/parser/js/NumberLiteral.java M src/com/google/caja/parser/js/ObjectConstructor.java M src/com/google/caja/parser/js/Operation.java M src/com/google/caja/parser/js/Parser.java M src/com/google/caja/parser/js/QuotedExpression.java M src/com/google/caja/parser/js/RealLiteral.java M src/com/google/caja/parser/js/Reference.java M src/com/google/caja/parser/js/RegexpLiteral.java M src/com/google/caja/parser/js/StringLiteral.java M src/com/google/caja/parser/quasiliteral/AlphaRenaming.java M tests/com/google/caja/parser/js/ExpressionTest.java M tests/com/google/caja/plugin/templates/JsConcatenatorTest.java
