• Home
  • Raw
  • Download

Lines Matching full:this

4  * you may not use this file except in compliance with the License.
58 this.beginLabel = beginLabel;
59 this.endLabel = endLabel;
63 return this.beginLabel;
67 return this.endLabel;
77 this.catchBeginLabel = catchBeginLabel;
78 this.labelPairs.push(labelPair);
79 this.depth = TryStatement.getcurrentTryStatementDepth();
81 pandaGen.getCatchMap().set(catchBeginLabel, this);
85 return this.labelPairs;
89 return this.catchBeginLabel;
93 return this.depth;
98 let lastLabelPair = this.labelPairs.pop();
100this.labelPairs.push(new LabelPair(lastLabelPair.getBeginLabel(), inlinedLabelPair.getBeginLabel()…
101this.labelPairs.push(new LabelPair(inlinedLabelPair.getEndLabel(), lastLabelPair.getEndLabel()));
118 this.outer = TryStatement.currentTryStatement;
129 if (this.outer) {
131 this.outer.catchTable.splitLabelPair(labelPairs[labelPairs.length - 1]);
133 this.stmt = stmt;
134 this.catchTable = catchTable;
136 this.trybuilder = trybuilder;
139 TryStatement.currentTryStatement = this;
144 TryStatement.currentTryStatement = this.outer;
160 return this.outer;
164 return this.stmt;
168 return this.catchTable;
172 return this.loopEnvLevel;
176 this.loopEnvLevel += 1;
180 this.loopEnvLevel -= 1;
191 this.compiler = compiler;
192 this.pandaGen = pandaGen;
193 this.stmt = Stmt;
211 if ((<ts.TryStatement>this.stmt).finallyBlock) {
212 this.tryStatement = new TryStatement(this.stmt, catchTable, this);
214 this.tryStatement = new TryStatement(this.stmt, catchTable);
217 this.compiler.compileStatement((<ts.TryStatement>this.stmt).tryBlock);
220 this.tryStatement.destroy();
224 if ((<ts.TryStatement>this.stmt).finallyBlock) {
225 this.compiler.compileStatement((<ts.TryStatement>this.stmt).finallyBlock!);
230 let catchClause = (<ts.TryStatement>this.stmt).catchClause;
232 this.compiler.pushScope(catchClause);
233 compileCatchClauseVariableDeclaration(this.compiler, catchClause.variableDeclaration);
235 this.compiler.pushScope(catchBlock);
236 catchBlock.statements.forEach((stmt) => this.compiler.compileStatement(stmt));
237 this.compiler.popScope();
238 this.compiler.popScope();
241 let exceptionVreg = this.pandaGen.getTemp();
242 this.pandaGen.storeAccumulator(this.stmt, exceptionVreg);
243 this.compiler.compileStatement((<ts.TryStatement>this.stmt).finallyBlock!);
244 this.pandaGen.loadAccumulator(this.stmt, exceptionVreg);
245 this.pandaGen.throw(this.stmt);
246 this.pandaGen.freeTemps(exceptionVreg);
252 this.compiler.compileStatement((<ts.TryStatement>this.stmt).finallyBlock!);
267 this.labelTarget = labelTarget;
268 this.doneReg = doneReg;
269 this.iterator = iterator;
270 this.hasLoopEnv = hasLoopEnv;
271 this.loopEnv = loopEnv ? loopEnv : undefined;
275 let stmt = <ts.ForOfStatement>this.stmt;
276 let compiler = <Compiler>this.compiler;
277 let pandaGen = this.pandaGen;
278 this.tryStatement = new TryStatement(stmt, catchTable, this);
280 let resultReg = this.pandaGen.getTemp();
286 pandaGen.storeAccumulator(stmt, this.doneReg);
288 pandaGen.label(stmt, this.labelTarget.getContinueTargetLabel()!);
289 if (this.hasLoopEnv) {
293 this.compileIteratorNext(stmt, pandaGen, this.iterator, resultReg);
296 pandaGen.jumpIfTrue(stmt, this.labelTarget.getBreakTargetLabel());
302 pandaGen.storeAccumulator(stmt, this.doneReg);
304 let lref = LReference.generateLReference(this.compiler, stmt.initializer, isDeclaration);
308 this.compiler.compileStatement(stmt.statement);
309 this.tryStatement.destroy();
316 let pandaGen = this.pandaGen;
319 pandaGen.storeAccumulator(this.stmt, exceptionVreg);
321 pandaGen.loadAccumulator(this.stmt, this.doneReg);
323 (<ts.ForOfStatement>this.stmt).expression,
328 pandaGen.loadObjProperty(this.stmt, this.iterator.getObject(), "return");
329 pandaGen.storeAccumulator(this.stmt, this.iterator.getNextMethod());
330 …pandaGen.condition(this.stmt, ts.SyntaxKind.ExclamationEqualsEqualsToken, getVregisterCache(pandaG…
331 pandaGen.call(this.stmt, [this.iterator.getNextMethod(), this.iterator.getObject()], true);
332 if (this.iterator.getType() === IteratorType.Async) {
333 (<AsyncGeneratorFunctionBuilder>(this.compiler.getFuncBuilder())).await(this.stmt);
336 pandaGen.label(this.stmt, noReturn);
337 pandaGen.loadAccumulator(this.stmt, exceptionVreg);
338 pandaGen.throw(this.stmt);
344 …if (cfc === ControlFlowChange.Break || continueTargetLabel != this.labelTarget.getContinueTargetLa…
346 let innerResult = this.pandaGen.getTemp();
347 this.pandaGen.loadObjProperty(this.stmt, this.iterator.getObject(), "return");
348 this.pandaGen.storeAccumulator(this.stmt, this.iterator.getNextMethod());
349this.pandaGen.condition(this.stmt, ts.SyntaxKind.ExclamationEqualsEqualsToken, getVregisterCache(t…
350this.pandaGen.call(this.stmt, [this.iterator.getNextMethod(), this.iterator.getObject()], true);
352 this.pandaGen.storeAccumulator(this.stmt, innerResult);
353 this.pandaGen.throwIfNotObject(this.stmt, innerResult);
355 this.pandaGen.label(this.stmt, noReturn);
356 this.pandaGen.freeTemps(innerResult);
363 (<AsyncGeneratorFunctionBuilder>(this.compiler.getFuncBuilder())).await(this.stmt);