String moduleLdr = lrReference.getName().toString(); String moduleLang = lrReference.getLanguage().toString(); assert Language.JAVA.getName().equals(lrReference.getLanguage()) : "Java language only is currently supported"; String ldrName = lrReference.getName().toString(); String ldrLang = lrReference.getLanguage().toString(); assert Language.JAVA.getName().equals(lrReference.getLanguage()) : "Java language only is currently supported"; String ldrImplName = e.getValue(); String ldrImplDescrLine = String.format("%s,%s,%s,%s", ldrName, ldrLang, "loaderImpl", ldrImplName);
String moduleLdr = lrReference.getName().toString(); String moduleLang = lrReference.getLanguage().toString(); assert Language.JAVA.getName().equals(lrReference.getLanguage()) : "Java language only is currently supported"; String ldrName = lrReference.getName().toString(); String ldrLang = lrReference.getLanguage().toString(); assert Language.JAVA.getName().equals(lrReference.getLanguage()) : "Java language only is currently supported"; String ldrImplName = e.getValue(); String ldrImplDescrLine = String.format("%s,%s,%s,%s", ldrName, ldrLang, "loaderImpl", ldrImplName);
public static void addDefaultDispatchLogic(AnalysisOptions options, IClassHierarchy cha) { com.ibm.wala.ipa.callgraph.impl.Util.addDefaultSelectors(options, cha); Map<Atom,MethodTargetSelector> methodTargetSelectors = HashMapFactory.make(); methodTargetSelectors.put(JavaScriptLoader.JS.getName(), new JavaScriptConstructTargetSelector(cha, new StandardFunctionTargetSelector(cha, options.getMethodTargetSelector()))); methodTargetSelectors.put(Language.JAVA.getName(), options.getMethodTargetSelector()); options.setSelector(new CrossLanguageMethodTargetSelector(methodTargetSelectors)); }
public JavaJavaScriptHybridCallGraphBuilder(IMethod fakeRootClass, AnalysisOptions options, IAnalysisCacheView cache) { super(fakeRootClass, options, cache, new AstCFAPointerKeys()); globalObject = new GlobalObjectKey(cha.lookupClass(JavaScriptTypes.Root)); SSAContextInterpreter contextInterpreter = makeDefaultContextInterpreters(null, options, cha); setContextInterpreter( contextInterpreter ); ContextSelector def = new DefaultContextSelector(options, cha); Map<Atom,ContextSelector> languageSelectors = HashMapFactory.make(); languageSelectors.put(JavaScriptTypes.jsName, new JavaScriptFunctionApplyContextSelector(new JavaScriptConstructorContextSelector(def))); languageSelectors.put(Language.JAVA.getName(), def); setContextSelector(new CrossLanguageContextSelector(languageSelectors)); Map<Atom,InstanceKeyFactory> instanceKeys = HashMapFactory.make(); instanceKeys.put( JavaScriptTypes.jsName, new JavaScriptScopeMappingInstanceKeys(cha, this, new JavaScriptConstructorInstanceKeys(new ZeroXInstanceKeys( options, cha, contextInterpreter, ZeroXInstanceKeys.ALLOCATIONS)))); instanceKeys.put( Language.JAVA.getName(), new ZeroXInstanceKeys(options, cha, contextInterpreter, ZeroXInstanceKeys.NONE)); setInstanceKeys(new CrossLanguageInstanceKeys(instanceKeys)); }