private JsArray handleArrayCreation(Node initNode, JsObject parent, Identifier name) {
if (initNode instanceof UnaryNode && parent != null) {
UnaryNode uNode = (UnaryNode)initNode;
if (uNode.tokenType() == TokenType.NEW && uNode.getExpression() instanceof CallNode) {
CallNode cNode = (CallNode)uNode.getExpression();
if (cNode.getFunction() instanceof IdentNode && "Array".equals(((IdentNode)cNode.getFunction()).getName())) {
List<TypeUsage> itemTypes = new ArrayList<TypeUsage>();
for (Node node : cNode.getArgs()) {
itemTypes.addAll(ModelUtils.resolveSemiTypeOfExpression(modelBuilder, node));
}
EnumSet<Modifier> modifiers = parent.getJSKind() != JsElement.Kind.FILE ? EnumSet.of(Modifier.PRIVATE) : EnumSet.of(Modifier.PUBLIC);
JsArrayImpl result = new JsArrayImpl(parent, name, name.getOffsetRange(), true, modifiers, parserResult.getSnapshot().getMimeType(), null);
result.addTypesInArray(itemTypes);
return result;
}
}
}
return null;
}