• Home
  • Raw
  • Download

Lines Matching refs:pandaGen

39     constructor(pandaGen: PandaGen, compiler: Compiler) {
40 super(pandaGen);
41 this.funcObj = pandaGen.getTemp();
42 this.resumeVal = pandaGen.getTemp();
47 let pandaGen = this.pg;
50 pandaGen.createGeneratorObj(node, getVregisterCache(pandaGen, CacheList.FUNC));
51 pandaGen.storeAccumulator(node, this.funcObj);
52 pandaGen.loadAccumulator(node, getVregisterCache(pandaGen, CacheList.UNDEFINED));
53 pandaGen.suspendGenerator(node, this.funcObj);
54 pandaGen.resumeGenerator(node, this.funcObj);
55 pandaGen.storeAccumulator(node, this.resumeVal);
69 let pandaGen = this.pg;
70 let iterRslt = pandaGen.getTemp();
71 let value = pandaGen.getTemp();
73 pandaGen.storeAccumulator(node, value);
74 pandaGen.Createiterresultobj(node, value, getVregisterCache(pandaGen, CacheList.FALSE));
75 pandaGen.suspendGenerator(node, this.funcObj);
76 pandaGen.freeTemps(iterRslt, value);
78 pandaGen.resumeGenerator(node, this.funcObj);
79 pandaGen.storeAccumulator(node, this.resumeVal);
85 let pandaGen = this.pg;
86 let method = pandaGen.getTemp();
87 let object = pandaGen.getTemp();
89 let receivedValue = pandaGen.getTemp();
90 let modeType = pandaGen.getTemp();
103 let iterator: IteratorRecord = getIteratorRecord(pandaGen, expr, method, object, type);
106 pandaGen.moveVreg(expr, receivedValue, getVregisterCache(pandaGen, CacheList.UNDEFINED));
109 pandaGen.loadAccumulatorInt(expr, ResumeMode.NEXT);
110 pandaGen.storeAccumulator(expr, modeType);
113 pandaGen.label(expr, loopStartLabel);
114 pandaGen.loadAccumulatorInt(expr, ResumeMode.NEXT);
115 pandaGen.condition(expr, ts.SyntaxKind.EqualsEqualsToken, modeType, callreturnLabel);
118 pandaGen.call(expr, [iterator.getNextMethod(), iterator.getObject(), receivedValue], true);
119 pandaGen.branch(expr, iteratorCompletionLabel);
122 pandaGen.label(expr, callreturnLabel);
123 pandaGen.loadAccumulatorInt(expr, ResumeMode.RETURN);
124 pandaGen.condition(expr, ts.SyntaxKind.EqualsEqualsToken, modeType, callthrowLabel);
126 pandaGen.loadObjProperty(expr, iterator.getObject(), "return");
127 pandaGen.storeAccumulator(expr, method);
130pandaGen.condition(expr, ts.SyntaxKind.ExclamationEqualsEqualsToken, getVregisterCache(pandaGen, C…
131 pandaGen.call(expr, [method, iterator.getObject(), receivedValue], true);
132 pandaGen.branch(expr, iteratorCompletionLabel);
135 pandaGen.label(expr, exitLabelReturn);
145 pandaGen.loadAccumulator(expr, receivedValue);
146 pandaGen.return(expr);
149 pandaGen.label(expr, callthrowLabel);
150 pandaGen.loadObjProperty(expr, iterator.getObject(), "throw");
151 pandaGen.storeAccumulator(expr, method);
154pandaGen.condition(expr, ts.SyntaxKind.ExclamationEqualsEqualsToken, getVregisterCache(pandaGen, C…
155 pandaGen.call(expr, [method, iterator.getObject(), receivedValue], true);
156 pandaGen.branch(expr, iteratorCompletionLabel);
161 pandaGen.label(expr, exitLabelThrow);
162 pandaGen.loadObjProperty(expr, iterator.getObject(), "return");
163 pandaGen.storeAccumulator(expr, method);
166pandaGen.condition(expr, ts.SyntaxKind.ExclamationEqualsEqualsToken, getVregisterCache(pandaGen, C…
169 pandaGen.call(expr, [method, iterator.getObject()], true);
170 let innerResult = pandaGen.getTemp();
171 pandaGen.storeAccumulator(expr, innerResult);
172 pandaGen.throwIfNotObject(expr, innerResult);
173 pandaGen.freeTemps(innerResult);
175 pandaGen.label(expr, exitLabelTypeError);
176 pandaGen.throwThrowNotExist(expr);
179 pandaGen.label(expr, iteratorCompletionLabel);
180 pandaGen.storeAccumulator(expr, this.resumeVal);
181 pandaGen.throwIfNotObject(expr, this.resumeVal);
183 pandaGen.loadObjProperty(expr, this.resumeVal, "done");
184 pandaGen.jumpIfTrue(expr, exitLabelValue);
186 pandaGen.loadAccumulator(expr, this.resumeVal);
187 pandaGen.suspendGenerator(expr, this.funcObj);
188 pandaGen.resumeGenerator(expr, this.funcObj);
189 pandaGen.storeAccumulator(expr, receivedValue);
190 pandaGen.getResumeMode(expr, this.funcObj);
191 pandaGen.storeAccumulator(expr, modeType);
192 pandaGen.branch(expr, loopStartLabel);
199 pandaGen.label(expr, exitLabelValue);
200 pandaGen.loadObjProperty(expr, this.resumeVal, "value");
201 let outputResult = pandaGen.getTemp();
202 pandaGen.storeAccumulator(expr, outputResult);
203 pandaGen.loadAccumulatorInt(expr, ResumeMode.RETURN);
204 pandaGen.condition(expr, ts.SyntaxKind.EqualsEqualsToken, modeType, outputLabel);
211 pandaGen.loadAccumulator(expr, outputResult);
212 pandaGen.return(expr);
214 pandaGen.label(expr, outputLabel);
215 pandaGen.loadAccumulator(expr, outputResult);
217 pandaGen.freeTemps(method, object, receivedValue, modeType, outputResult);
221 let pandaGen = this.pg;
223 let modeType = pandaGen.getTemp();
225 pandaGen.getResumeMode(node, this.funcObj);
226 pandaGen.storeAccumulator(node, modeType);
229 pandaGen.loadAccumulatorInt(node, ResumeMode.RETURN);
233 pandaGen.condition(node, ts.SyntaxKind.EqualsEqualsToken, modeType, notRetLabel);
242 pandaGen.loadAccumulator(node, this.resumeVal);
243 pandaGen.return(node);
246 pandaGen.label(node, notRetLabel);
248 pandaGen.loadAccumulatorInt(node, ResumeMode.THROW);
252 pandaGen.condition(node, ts.SyntaxKind.EqualsEqualsToken, modeType, notThrowLabel);
253 pandaGen.loadAccumulator(node, this.resumeVal);
254 pandaGen.throw(node);
256 pandaGen.freeTemps(modeType);
259 pandaGen.label(node, notThrowLabel);
260 pandaGen.loadAccumulator(node, this.resumeVal);