protected override ICode VisitStoreObj(StmtStoreObj s) { this.NewLine(); this.code.Append("*"); this.Visit(s.Destination); this.code.Append(" = "); this.Visit(s.Source); return(s); }
protected virtual ICode VisitStoreObj(StmtStoreObj s) { this.ThrowOnNoOverride(); var source = (Expr)this.Visit(s.Source); var destination = (Expr)this.Visit(s.Destination); if (source != s.Source || destination != s.Destination) { return(new StmtStoreObj(s.Ctx, destination, source)); } else { return(s); } }
protected override ICode VisitStoreObj(StmtStoreObj s) { this.NewLine(); switch (s.Destination.ExprType) { case Expr.NodeType.ElementAddress: this.Visit(s.Destination); break; case Expr.NodeType.VarLocal: case Expr.NodeType.VarParameter: this.Visit(s.Destination); this.js.Append("[0]"); break; default: throw new NotImplementedException("Cannot handle expr-type: " + s.Destination.ExprType); } this.js.Append(" = "); this.Visit(s.Source); this.js.Append(";"); return(s); }