code: private void visitNew(Node n) {
      Node constructor = n.getFirstChild();
      JSType type = getJSType(constructor).restrictByNotNullOrUndefined();
      if (!couldBeAConstructor(type)
          || type.isEquivalentTo(typeRegistry.getNativeType(SYMBOL_OBJECT_FUNCTION_TYPE))) {
        report(n, NOT_A_CONSTRUCTOR);
        ensureTyped(n);
        return;
      }
  
      FunctionType fnType = type.toMaybeFunctionType();
      if (fnType != null && fnType.hasInstanceType()) {
        FunctionType ctorType = fnType.getInstanceType().getConstructor();
        if (ctorType != null && ctorType.isAbstract()) {
          report(n, INSTANTIATE_ABSTRACT_CLASS);
        }
        visitArgumentList(n, fnType);
        ensureTyped(n, fnType.getInstanceType());
      } else {
        ensureTyped(n);
      }
    }
docs: Visits a NEW node.