protected override ICode VisitVarArrayAccess(ExprVarArrayAccess e) { this.Visit(e.Array); this.js.Append("["); this.Visit(e.Index); this.js.Append("]"); return(e); }
private Stmt LoadElem(Instruction inst) { var index = this.stack.Pop(); var array = this.stack.Pop(); var arrayAccess = new ExprVarArrayAccess(this.ctx, array, index); return(this.SsaLocalAssignment(arrayAccess)); }
private Stmt StoreElem(Instruction inst) { var value = this.stack.Pop(); var index = this.stack.Pop(); var array = this.stack.Pop(); var arrayAccess = new ExprVarArrayAccess(this.ctx, array, index); var assignment = new StmtAssignment(this.ctx, arrayAccess, value); return(assignment); }
protected virtual ICode VisitVarArrayAccess(ExprVarArrayAccess e) { this.ThrowOnNoOverride(); var array = (Expr)this.Visit(e.Array); var index = (Expr)this.Visit(e.Index); if (array != e.Array || index != e.Index) { return(new ExprVarArrayAccess(e.Ctx, array, index)); } else { return(e); } }