private static void setJsInteropProperties(JMember member, Annotation... annotations) { String namespace = maybeGetJsNamespace(annotations); String exportName = maybeGetJsExportName(annotations, computeName(member)); member.setJsMemberInfo(namespace, exportName, exportName != null); /* Apply class wide JsInterop annotations */ boolean ignore = JdtUtil.getAnnotation(annotations, JSNOEXPORT_CLASS) != null; if (ignore || (!member.isPublic() && !isNativeConstructor(member)) || exportName != null) { return; } JDeclaredType enclosingType = member.getEnclosingType(); if (enclosingType.isJsType() && member.needsDynamicDispatch()) { member.setJsMemberInfo(namespace, computeName(member), true); } if (enclosingType.isClassWideExport() && !member.needsDynamicDispatch()) { member.setJsMemberInfo(namespace, computeName(member), true); } }