private static Set<Pair<CGNode, NewSiteReference>> getFbPrototypes(PointerAnalysis<ObjectVertex> fbPA, final HeapGraph<ObjectVertex> hg, CallGraph CG, CGNode node, int vn) { return getPrototypeSites(fbPA, CG, o -> { PrototypeFieldVertex proto = new PrototypeFieldVertex(PrototypeField.__proto__, o); if (hg.containsNode(proto)) { return new MapIterator<>(hg.getSuccNodes(proto), ObjectVertex.class::cast); } else { return EmptyIterator.instance(); } }, node, vn); }
boolean dump = false; PointerKey pointerKeyForInstanceField = fbPA.getHeapModel().getPointerKeyForInstanceField(k, new AstDynamicField(false, k.getConcreteType(), Atom.findOrCreateUnicodeAtom(f), JavaScriptTypes.Root)); if (! hg.containsNode(pointerKeyForInstanceField)) { dump = true; System.err.println("no " + f + " for " + k + "(" + k.getConcreteType() + ")");