bool frontend::AnalyzeFunctions(Parser *parser, StackFrame *callerFrame) { TreeContext *tc = parser->tc; SharedContext *sc = tc->sc; if (!tc->functionList) return true; if (!MarkExtensibleScopeDescendants(sc->context, tc->functionList, false)) return false; bool isDirectEval = !!callerFrame; bool isHeavyweight = false; SetFunctionKinds(tc->functionList, &isHeavyweight, sc->inFunction(), isDirectEval); if (isHeavyweight) sc->setFunIsHeavyweight(); return true; }