public JavaScriptFunctionApplyContextSelector(ContextSelector base) { this.base = base; // this.oneLevel = new nCFAContextSelector(1, base); this.oneLevel = new OneLevelSiteContextSelector(base); }
@Override public Context getCalleeTarget(final CGNode caller, CallSiteReference site, IMethod callee, InstanceKey[] receiver) { if (callee instanceof JavaScriptConstructor) { final Context oneLevelCallStringContext = oneLevelCallStrings.getCalleeTarget(caller, site, callee, receiver); if (AstLexicalInformation.hasExposedUses(caller, site)) { // use a caller-site context, to enable lexical scoping lookups (via caller CGNode) return oneLevelCallerSite.getCalleeTarget(caller, site, callee, receiver); } else { // use at least one-level of call-string sensitivity for constructors // always return oneLevelCallStringContext; } } else { return base.getCalleeTarget(caller, site, callee, receiver); } }
@Override public Context getCalleeTarget(final CGNode caller, CallSiteReference site, IMethod callee, InstanceKey[] receiver) { if (callee instanceof JavaScriptConstructor) { final Context oneLevelCallStringContext = oneLevelCallStrings.getCalleeTarget(caller, site, callee, receiver); if (AstLexicalInformation.hasExposedUses(caller, site)) { // use a caller-site context, to enable lexical scoping lookups (via caller CGNode) return oneLevelCallerSite.getCalleeTarget(caller, site, callee, receiver); } else { // use at least one-level of call-string sensitivity for constructors // always return oneLevelCallStringContext; } } else { return base.getCalleeTarget(caller, site, callee, receiver); } }
public JavaScriptFunctionApplyContextSelector(ContextSelector base) { this.base = base; // this.oneLevel = new nCFAContextSelector(1, base); this.oneLevel = new OneLevelSiteContextSelector(base); }
public JavaScriptConstructorContextSelector(ContextSelector base) { this.base = base; this.oneLevelCallStrings = new nCFAContextSelector(1, base); this.oneLevelCallerSite = new OneLevelSiteContextSelector(base); }
public JavaScriptConstructorContextSelector(ContextSelector base) { this.base = base; this.oneLevelCallStrings = new nCFAContextSelector(1, base); this.oneLevelCallerSite = new OneLevelSiteContextSelector(base); }