Lines Matching defs:pg

32 static void CheckConstAssignment(PandaGen *pg, const ir::AstNode *node, varbinder::Variable *variable)
38 pg->ThrowConstAssignment(node, variable->Name());
43 static void ExpandLoadLexVar(PandaGen *pg, const ir::AstNode *node, const varbinder::ConstScopeFindResult &result)
46 pg->LoadLexicalVar(node, result.lexLevel, result.variable->AsLocalVariable()->LexIdx());
48 pg->LoadLexical(node, result.name, result.lexLevel, result.variable->AsLocalVariable()->LexIdx());
52 static void ExpandLoadNormalVar(PandaGen *pg, const ir::AstNode *node, const varbinder::ConstScopeFindResult &result)
57 pg->ThrowTdz(node, local->Name());
59 pg->LoadAccumulator(node, local->Vreg());
63 void VirtualLoadVar::Expand(PandaGen *pg, const ir::AstNode *node, const varbinder::ConstScopeFindResult &result)
66 ExpandLoadLexVar(pg, node, result);
68 ExpandLoadNormalVar(pg, node, result);
74 static void StoreLocalExport(PandaGen *pg, const ir::AstNode *node, varbinder::Variable *variable)
76 if (!variable->HasFlag(varbinder::VariableFlags::LOCAL_EXPORT) || !pg->Scope()->IsModuleScope()) {
80 auto range = pg->Scope()->AsModuleScope()->LocalExports().equal_range(variable);
84 pg->StoreModuleVar(node, it->second);
89 static void ExpandStoreLexVar(PandaGen *pg, const ir::AstNode *node, const varbinder::ConstScopeFindResult &result,
98 pg->ThrowConstAssignment(node, local->Name());
101 pg->StoreLexical(node, result.name, result.lexLevel, local->LexIdx());
103 pg->StoreLexicalVar(node, result.lexLevel, local->LexIdx());
106 StoreLocalExport(pg, node, local);
109 static void ExpandStoreNormalVar(PandaGen *pg, const ir::AstNode *node, const varbinder::ConstScopeFindResult &result,
117 pg->ThrowTdz(node, local->Name());
120 CheckConstAssignment(pg, node, local);
123 pg->StoreAccumulator(node, localReg);
124 StoreLocalExport(pg, node, local);
127 void VirtualStoreVar::Expand(PandaGen *pg, const ir::AstNode *node, const varbinder::ConstScopeFindResult &result,
131 ExpandStoreLexVar(pg, node, result, isDecl);
133 ExpandStoreNormalVar(pg, node, result, isDecl);