Index: Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java |
diff --git a/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java b/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java |
index a85680b86f6827f49c961018c22f9598840b581b..b1bf28326be66809a3a60fd7de78303a1041f86c 100644 |
--- a/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java |
+++ b/Source/devtools/scripts/jsdoc-validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java |
@@ -4,9 +4,12 @@ import com.google.javascript.rhino.head.Token; |
import com.google.javascript.rhino.head.ast.Assignment; |
import com.google.javascript.rhino.head.ast.AstNode; |
import com.google.javascript.rhino.head.ast.FunctionNode; |
+import com.google.javascript.rhino.head.ast.ObjectProperty; |
public class AstUtil { |
+ static final String PROTOTYPE_SUFFIX = ".prototype"; |
eustas
2014/01/28 08:47:21
private?
apavlov
2014/01/28 10:40:17
Done.
|
+ |
static boolean hasParentOfType(AstNode node, int tokenType) { |
AstNode parent = node.getParent(); |
if (parent == null) { |
@@ -21,6 +24,10 @@ public class AstUtil { |
return nameNode; |
} |
+ if (AstUtil.hasParentOfType(functionNode, Token.COLON)) { |
+ return ((ObjectProperty) functionNode.getParent()).getLeft(); |
+ } |
+ |
if (AstUtil.hasParentOfType(functionNode, Token.ASSIGN)) { |
Assignment assignment = (Assignment) functionNode.getParent(); |
if (assignment.getRight() == functionNode) { |
@@ -30,5 +37,21 @@ public class AstUtil { |
return null; |
} |
+ static String getTypeNameFromPrototype(String value) { |
+ return value.substring(0, value.length() - PROTOTYPE_SUFFIX.length()); |
+ } |
+ |
+ static boolean isPrototypeName(String typeName) { |
+ return typeName.endsWith(PROTOTYPE_SUFFIX); |
+ } |
+ |
+ static AstNode getAssignedTypeNameNode(Assignment assignment) { |
+ AstNode typeNameNode = assignment.getLeft(); |
+ if (typeNameNode.getType() != Token.GETPROP && typeNameNode.getType() != Token.NAME) { |
+ return null; |
+ } |
+ return typeNameNode; |
+ } |
+ |
private AstUtil() {} |
} |