Lines Matching refs:node
24 void GeneratorFunctionBuilder::Prepare(const ir::ScriptFunction *node)
26 VReg callee = FunctionReg(node);
30 pg_->CreateGeneratorObj(node, callee);
31 pg_->StoreAccumulator(node, funcObj_);
32 pg_->LoadConst(node, Constant::JS_UNDEFINED);
33 SuspendResumeExecution(node, completionType, completionValue);
34 HandleCompletion(node, completionType, completionValue);
37 void GeneratorFunctionBuilder::CleanUp(const ir::ScriptFunction *node) const
41 pg_->SetLabel(node, labelSet.TryEnd());
42 pg_->SetLabel(node, labelSet.CatchBegin());
43 pg_->EmitThrow(node);
44 pg_->SetLabel(node, labelSet.CatchEnd());
47 void GeneratorFunctionBuilder::DirectReturn(const ir::AstNode *node) const
49 pg_->EmitReturn(node);
52 void GeneratorFunctionBuilder::ImplicitReturn(const ir::AstNode *node) const
55 pg_->LoadConst(node, Constant::JS_UNDEFINED);
57 DirectReturn(node);
60 void GeneratorFunctionBuilder::ExplicitReturn(const ir::AstNode *node) const
62 DirectReturn(node);
65 void GeneratorFunctionBuilder::Yield(const ir::AstNode *node)
73 pg_->StoreAccumulator(node, value);
74 pg_->LoadConst(node, Constant::JS_FALSE);
75 pg_->StoreAccumulator(node, done);
76 pg_->CreateIterResultObject(node, value, done);
77 SuspendResumeExecution(node, completionType, completionValue);
79 HandleCompletion(node, completionType, completionValue);