private Node baseCall(Node clazz, String methodName, Node arguments) {
   boolean useUnique = NodeUtil.isStatement(clazz) && !isInFunction(clazz);
   String uniqueClassString =
       useUnique ? getUniqueClassName(NodeUtil.getClassName(clazz)) : NodeUtil.getClassName(clazz);
   Node uniqueClassName =
       NodeUtil.newQualifiedNameNode(compiler.getCodingConvention(), uniqueClassString);
   Node base = IR.getprop(uniqueClassName, IR.string("base"));
   Node call = IR.call(base, IR.thisNode(), IR.string(methodName));
   if (arguments != null) {
     call.addChildrenToBack(arguments);
   }
   return call;
 }