diff --git a/pmd-javascript/src/main/java/net/sourceforge/pmd/lang/ecmascript/ast/ASTEmptyStatement.java b/pmd-javascript/src/main/java/net/sourceforge/pmd/lang/ecmascript/ast/ASTEmptyStatement.java new file mode 100644 index 0000000000..1b800342bd --- /dev/null +++ b/pmd-javascript/src/main/java/net/sourceforge/pmd/lang/ecmascript/ast/ASTEmptyStatement.java @@ -0,0 +1,17 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ +package net.sourceforge.pmd.lang.ecmascript.ast; + +import org.mozilla.javascript.ast.EmptyStatement; + +public class ASTEmptyStatement extends AbstractEcmascriptNode { + public ASTEmptyStatement(EmptyStatement emptyStatement) { + super(emptyStatement); + } + + @Override + public Object jjtAccept(EcmascriptParserVisitor visitor, Object data) { + return visitor.visit(this, data); + } +} diff --git a/pmd-javascript/src/main/java/net/sourceforge/pmd/lang/ecmascript/ast/EcmascriptTreeBuilder.java b/pmd-javascript/src/main/java/net/sourceforge/pmd/lang/ecmascript/ast/EcmascriptTreeBuilder.java index 907c6e740e..5edbc1b50a 100644 --- a/pmd-javascript/src/main/java/net/sourceforge/pmd/lang/ecmascript/ast/EcmascriptTreeBuilder.java +++ b/pmd-javascript/src/main/java/net/sourceforge/pmd/lang/ecmascript/ast/EcmascriptTreeBuilder.java @@ -27,6 +27,7 @@ import org.mozilla.javascript.ast.ContinueStatement; import org.mozilla.javascript.ast.DoLoop; import org.mozilla.javascript.ast.ElementGet; import org.mozilla.javascript.ast.EmptyExpression; +import org.mozilla.javascript.ast.EmptyStatement; import org.mozilla.javascript.ast.ExpressionStatement; import org.mozilla.javascript.ast.ForInLoop; import org.mozilla.javascript.ast.ForLoop; @@ -83,6 +84,7 @@ public final class EcmascriptTreeBuilder implements NodeVisitor { register(DoLoop.class, ASTDoLoop.class); register(ElementGet.class, ASTElementGet.class); register(EmptyExpression.class, ASTEmptyExpression.class); + register(EmptyStatement.class, ASTEmptyStatement.class); register(ExpressionStatement.class, ASTExpressionStatement.class); register(ForInLoop.class, ASTForInLoop.class); register(ForLoop.class, ASTForLoop.class); diff --git a/pmd-javascript/src/test/java/net/sourceforge/pmd/lang/ecmascript/ast/ASTFunctionNodeTest.java b/pmd-javascript/src/test/java/net/sourceforge/pmd/lang/ecmascript/ast/ASTFunctionNodeTest.java index 7021128325..6aa6fe66f8 100644 --- a/pmd-javascript/src/test/java/net/sourceforge/pmd/lang/ecmascript/ast/ASTFunctionNodeTest.java +++ b/pmd-javascript/src/test/java/net/sourceforge/pmd/lang/ecmascript/ast/ASTFunctionNodeTest.java @@ -23,6 +23,7 @@ public class ASTFunctionNodeTest extends EcmascriptParserTestBase { ASTFunctionNode fn = node.getFirstDescendantOfType(ASTFunctionNode.class); Assert.assertTrue(fn.isClosure()); EcmascriptNode body = fn.getBody(); - Assert.assertTrue(body instanceof ASTReturnStatement); + Assert.assertTrue(body instanceof ASTBlock); + Assert.assertTrue(body.jjtGetChild(0) instanceof ASTReturnStatement); } } diff --git a/pom.xml b/pom.xml index 25e35faeaf..902043b0a1 100644 --- a/pom.xml +++ b/pom.xml @@ -673,7 +673,7 @@ org.mozilla rhino - 1.7R3 + 1.7R4 junit