Reviewers: jasvir,

Description:
Fix Issue 985: http://code.google.com/p/google-caja/issues/detail?id=985

Adds a distinguished annotation for ParseTreeNode constructors to be
invoked reflectively (e.g., when cloning a tree); adds tests for
cloneability for the CSS and JS parse tree nodes; and makes a couple
of minor changes to the CSS nodes (the original source of this bug)
where their ctors were not allowing them to be successfully cloned.

Please review this at http://codereview.appspot.com/88158

Affected files:
  M     src/com/google/caja/parser/ParseTreeNode.java
  M     src/com/google/caja/parser/ParseTreeNodeContainer.java
  M     src/com/google/caja/parser/ParseTreeNodes.java
  M     src/com/google/caja/parser/css/CssTree.java
  M     src/com/google/caja/parser/js/AbstractExpression.java
  M     src/com/google/caja/parser/js/AbstractStatement.java
  M     src/com/google/caja/parser/js/ArrayConstructor.java
  M     src/com/google/caja/parser/js/AssignOperation.java
  M     src/com/google/caja/parser/js/Block.java
  M     src/com/google/caja/parser/js/BooleanLiteral.java
  M     src/com/google/caja/parser/js/BreakStmt.java
  M     src/com/google/caja/parser/js/CajoledModule.java
  M     src/com/google/caja/parser/js/CaseStmt.java
  M     src/com/google/caja/parser/js/CatchStmt.java
  M     src/com/google/caja/parser/js/Conditional.java
  M     src/com/google/caja/parser/js/ContinueStmt.java
  M     src/com/google/caja/parser/js/ControlOperation.java
  M     src/com/google/caja/parser/js/DebuggerStmt.java
  M     src/com/google/caja/parser/js/Declaration.java
  M     src/com/google/caja/parser/js/DefaultCaseStmt.java
  M     src/com/google/caja/parser/js/DoWhileLoop.java
  M     src/com/google/caja/parser/js/ExpressionStmt.java
  M     src/com/google/caja/parser/js/FinallyStmt.java
  M     src/com/google/caja/parser/js/ForEachLoop.java
  M     src/com/google/caja/parser/js/ForLoop.java
  M     src/com/google/caja/parser/js/FormalParam.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/Identifier.java
  M     src/com/google/caja/parser/js/IntegerLiteral.java
  M     src/com/google/caja/parser/js/LabeledStmtWrapper.java
  M     src/com/google/caja/parser/js/Loop.java
  M     src/com/google/caja/parser/js/MultiDeclaration.java
  M     src/com/google/caja/parser/js/Noop.java
  M     src/com/google/caja/parser/js/NullLiteral.java
  M     src/com/google/caja/parser/js/ObjectConstructor.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/ReturnStmt.java
  M     src/com/google/caja/parser/js/SimpleOperation.java
  M     src/com/google/caja/parser/js/SpecialOperation.java
  M     src/com/google/caja/parser/js/StringLiteral.java
  M     src/com/google/caja/parser/js/SwitchStmt.java
  M     src/com/google/caja/parser/js/ThrowStmt.java
  M     src/com/google/caja/parser/js/TranslatedCode.java
  M     src/com/google/caja/parser/js/TryStmt.java
  M     src/com/google/caja/parser/js/UncajoledModule.java
  M     src/com/google/caja/parser/js/UseSubset.java
  M     src/com/google/caja/parser/js/UseSubsetDirective.java
  M     src/com/google/caja/parser/js/WhileLoop.java
  M     src/com/google/caja/parser/js/WithStmt.java
  M     tests/com/google/caja/parser/css/CssParserTest.java
  M     tests/com/google/caja/parser/js/ParserTest.java
  M     tests/com/google/caja/util/CajaTestCase.java


Reply via email to