void Scope::SetIsObject() { if (this->isObject) { return; } this->isObject = true; // We might set the scope to be object after we have process the symbol // (e.g. "With" scope referencing a symbol in an outer scope). // If we have func assignment, we need to mark the function to not do stack nested function // as these are now assigned to a scope object. FuncInfo * funcInfo = this->GetFunc(); if (funcInfo && !funcInfo->HasMaybeEscapedNestedFunc()) { this->ForEachSymbolUntil([funcInfo](Symbol * const sym) { if (sym->GetHasFuncAssignment()) { funcInfo->SetHasMaybeEscapedNestedFunc(DebugOnly(_u("DelayedObjectScopeAssignment"))); return true; } return false; }); } }