Lines Matching refs:node
29 static bool CheckTdz(const ir::AstNode *node) in CheckTdz() argument
31 return node->IsIdentifier() && node->AsIdentifier()->IsTdz(); in CheckTdz()
34 static void CheckConstAssignment(PandaGen *pg, const ir::AstNode *node, binder::Variable *variable) in CheckConstAssignment() argument
40 pg->ThrowConstAssignment(node, variable->Name()); in CheckConstAssignment()
45 static void ExpandLoadLexVar(PandaGen *pg, const ir::AstNode *node, const binder::ScopeFindResult &… in ExpandLoadLexVar() argument
47 …pg->LoadLexicalVar(node, result.lexLevel, result.variable->AsLocalVariable()->LexIdx(), result.var… in ExpandLoadLexVar()
50 pg->ThrowUndefinedIfHole(node, result.variable->Name()); in ExpandLoadLexVar()
54 static void ExpandLoadNormalVar(PandaGen *pg, const ir::AstNode *node, const binder::ScopeFindResul… in ExpandLoadNormalVar() argument
58 if (CheckTdz(node)) { in ExpandLoadNormalVar()
59 pg->LoadConst(node, Constant::JS_HOLE); in ExpandLoadNormalVar()
60 pg->ThrowUndefinedIfHole(node, local->Name()); in ExpandLoadNormalVar()
62 pg->LoadAccumulator(node, local->Vreg()); in ExpandLoadNormalVar()
66 void VirtualLoadVar::Expand(PandaGen *pg, const ir::AstNode *node, const binder::ScopeFindResult &r… in Expand() argument
69 ExpandLoadLexVar(pg, node, result); in Expand()
71 ExpandLoadNormalVar(pg, node, result); in Expand()
77 static void ExpandStoreLexVar(PandaGen *pg, const ir::AstNode *node, const binder::ScopeFindResult … in ExpandStoreLexVar() argument
87 pg->StoreAccumulator(node, valueReg); in ExpandStoreLexVar()
89 ExpandLoadLexVar(pg, node, result); in ExpandStoreLexVar()
92 pg->ThrowConstAssignment(node, local->Name()); in ExpandStoreLexVar()
95 pg->LoadAccumulator(node, valueReg); in ExpandStoreLexVar()
98 pg->StoreLexicalVar(node, result.lexLevel, local->LexIdx(), local); in ExpandStoreLexVar()
101 static void ExpandStoreNormalVar(PandaGen *pg, const ir::AstNode *node, const binder::ScopeFindResu… in ExpandStoreNormalVar() argument
108 if (CheckTdz(node)) { in ExpandStoreNormalVar()
109 pg->LoadConst(node, Constant::JS_HOLE); in ExpandStoreNormalVar()
110 pg->ThrowUndefinedIfHole(node, local->Name()); in ExpandStoreNormalVar()
113 CheckConstAssignment(pg, node, local); in ExpandStoreNormalVar()
118 auto fn = [&pg, &node, &local, &localReg](auto typeIndex, const auto &tag) { in ExpandStoreNormalVar()
120 pg->StoreAccumulatorWithType(node, typeIndex, localReg); in ExpandStoreNormalVar()
131 if (fn(context->TypeRecorder()->GetNodeTypeIndex(node), "declnode")) { in ExpandStoreNormalVar()
136 pg->StoreAccumulator(node, localReg); in ExpandStoreNormalVar()
139 void VirtualStoreVar::Expand(PandaGen *pg, const ir::AstNode *node, const binder::ScopeFindResult &… in Expand() argument
142 ExpandStoreLexVar(pg, node, result, isDecl); in Expand()
144 ExpandStoreNormalVar(pg, node, result, isDecl); in Expand()