public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { int pc = codeStream.position; if (valueRequired) codeStream.aload_0(); if ((this.bits & IsImplicitThis) == 0) codeStream.recordPositionsFrom(pc, this.sourceStart); }
public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { int pc = codeStream.position; if (valueRequired) codeStream.aload_0(); if ((this.bits & IsImplicitThis) == 0) codeStream.recordPositionsFrom(pc, this.sourceStart); }
public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { // various scenarii are possible, setting an array reference, // a field reference, a blank final field reference, a field of an enclosing instance or // just a local variable. int pc = codeStream.position; ((Reference) this.lhs).generateAssignment(currentScope, codeStream, this, valueRequired); // variable may have been optimized out // the lhs is responsible to perform the implicitConversion generation for the assignment since optimized for unused local assignment. codeStream.recordPositionsFrom(pc, this.sourceStart); }
/** * Case code generation * */ public void generateCode(BlockScope currentScope, CodeStream codeStream) { if ((this.bits & ASTNode.IsReachable) == 0) { return; } int pc = codeStream.position; this.targetLabel.place(); codeStream.recordPositionsFrom(pc, this.sourceStart); }
public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { int pc = codeStream.position; if (valueRequired) codeStream.aload_0(); if ((this.bits & IsImplicitThis) == 0) codeStream.recordPositionsFrom(pc, this.sourceStart); }
public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { // various scenarii are possible, setting an array reference, // a field reference, a blank final field reference, a field of an enclosing instance or // just a local variable. int pc = codeStream.position; ((Reference) this.lhs).generateAssignment(currentScope, codeStream, this, valueRequired); // variable may have been optimized out // the lhs is responsible to perform the implicitConversion generation for the assignment since optimized for unused local assignment. codeStream.recordPositionsFrom(pc, this.sourceStart); }
@Override public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { int pc = codeStream.position; if (valueRequired) codeStream.aload_0(); if ((this.bits & IsImplicitThis) == 0) codeStream.recordPositionsFrom(pc, this.sourceStart); }
/** * Case code generation * */ public void generateCode(BlockScope currentScope, CodeStream codeStream) { if ((this.bits & ASTNode.IsReachable) == 0) { return; } int pc = codeStream.position; this.targetLabel.place(); codeStream.recordPositionsFrom(pc, this.sourceStart); }
public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { // various scenarii are possible, setting an array reference, // a field reference, a blank final field reference, a field of an enclosing instance or // just a local variable. int pc = codeStream.position; ((Reference) this.lhs).generateAssignment(currentScope, codeStream, this, valueRequired); // variable may have been optimized out // the lhs is responsible to perform the implicitConversion generation for the assignment since optimized for unused local assignment. codeStream.recordPositionsFrom(pc, this.sourceStart); }
/** * Case code generation * */ public void generateCode(BlockScope currentScope, CodeStream codeStream) { if ((this.bits & ASTNode.IsReachable) == 0) { return; } int pc = codeStream.position; this.targetLabel.place(); codeStream.recordPositionsFrom(pc, this.sourceStart); }
/** * Code generation for string literal */ @Override public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { int pc = codeStream.position; if (valueRequired) codeStream.ldc(this.constant.stringValue()); codeStream.recordPositionsFrom(pc, this.sourceStart); }
/** * Code generation for string literal */ public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { int pc = codeStream.position; if (valueRequired) codeStream.ldc(this.constant.stringValue()); codeStream.recordPositionsFrom(pc, this.sourceStart); }
public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { // various scenarii are possible, setting an array reference, // a field reference, a blank final field reference, a field of an enclosing instance or // just a local variable. int pc = codeStream.position; ((Reference) this.lhs).generateCompoundAssignment(currentScope, codeStream, this.expression, this.operator, this.preAssignImplicitConversion, valueRequired); if (valueRequired) { codeStream.generateImplicitConversion(this.implicitConversion); } codeStream.recordPositionsFrom(pc, this.sourceStart); }
/** * Code generation for string literal */ public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { int pc = codeStream.position; if (valueRequired) codeStream.ldc(this.constant.stringValue()); codeStream.recordPositionsFrom(pc, this.sourceStart); }
/** * Code generation for string literal */ public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { int pc = codeStream.position; if (valueRequired) codeStream.ldc(this.constant.stringValue()); codeStream.recordPositionsFrom(pc, this.sourceStart); }
public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired) { int pc = codeStream.position; if (valueRequired) { codeStream.aload_0(); codeStream.fieldAccess(Opcodes.OPC_getfield, this.delegateThis, null /* default declaringClass */); // delegate field access } codeStream.recordPositionsFrom(pc, this.sourceStart); }
public void generateAssignment(BlockScope currentScope, CodeStream codeStream, Assignment assignment, boolean valueRequired) { int pc = codeStream.position; FieldBinding lastFieldBinding = generateReadSequence(currentScope, codeStream); codeStream.recordPositionsFrom(pc , this.sourceStart); assignment.expression.generateCode(currentScope, codeStream, true); fieldStore(currentScope, codeStream, lastFieldBinding, this.syntheticWriteAccessor, getFinalReceiverType(), false /*implicit this*/, valueRequired); // equivalent to valuesRequired[maxOtherBindings] if (valueRequired) { codeStream.generateImplicitConversion(assignment.implicitConversion); } }
public void generateAssignment(BlockScope currentScope, CodeStream codeStream, Assignment assignment, boolean valueRequired) { int pc = codeStream.position; FieldBinding lastFieldBinding = generateReadSequence(currentScope, codeStream); codeStream.recordPositionsFrom(pc , this.sourceStart); assignment.expression.generateCode(currentScope, codeStream, true); fieldStore(currentScope, codeStream, lastFieldBinding, this.syntheticWriteAccessor, getFinalReceiverType(), false /*implicit this*/, valueRequired); // equivalent to valuesRequired[maxOtherBindings] if (valueRequired) { codeStream.generateImplicitConversion(assignment.implicitConversion); } }
private void generateCodeSnippet(LocalDeclaration localDeclaration, CodeStream codeStream, BranchLabel postCloseLabel, boolean record, int i, int invokeCloseStartPc) { LocalVariableBinding variableBinding = localDeclaration.binding; codeStream.load(variableBinding); codeStream.ifnull(postCloseLabel); codeStream.load(variableBinding); codeStream.invokeAutoCloseableClose(variableBinding.type); if (!record) return; codeStream.recordPositionsFrom(invokeCloseStartPc, this.tryBlock.sourceEnd); if (!isDuplicateResourceReference(i)) // do not remove duplicate variable now codeStream.removeVariable(variableBinding); }
public void generateAssignment(BlockScope currentScope, CodeStream codeStream, Assignment assignment, boolean valueRequired) { int pc = codeStream.position; FieldBinding codegenBinding = this.binding.original(); this.receiver.generateCode(currentScope, codeStream, !codegenBinding.isStatic()); codeStream.recordPositionsFrom(pc, this.sourceStart); assignment.expression.generateCode(currentScope, codeStream, true); fieldStore(currentScope, codeStream, codegenBinding, this.syntheticAccessors == null ? null : this.syntheticAccessors[FieldReference.WRITE], this.actualReceiverType, this.receiver.isImplicitThis(), valueRequired); if (valueRequired) { codeStream.generateImplicitConversion(assignment.implicitConversion); } // no need for generic cast as value got dupped }