public virtual JsStatement VisitForEachInStatement(JsForEachInStatement statement, TData data) { var objectToIterateOver = VisitExpression(statement.ObjectToIterateOver, data); var body = VisitStatement(statement.Body, data); return(ReferenceEquals(objectToIterateOver, statement.ObjectToIterateOver) && ReferenceEquals(body, statement.Body) ? statement : new JsForEachInStatement(statement.LoopVariableName, objectToIterateOver, body, statement.IsLoopVariableDeclared)); }
public override JsStatement VisitForEachInStatement(JsForEachInStatement statement, Tuple <ImmutableStack <JsDeclarationScope>, HashSet <string> > data) { if (!statement.IsLoopVariableDeclared) { MaybeAddGlobal(statement.LoopVariableName, data.Item2, data.Item1); } return(base.VisitForEachInStatement(statement, data)); }
public override JsStatement VisitForEachInStatement(JsForEachInStatement statement, HashSet <string> data) { if (statement.IsLoopVariableDeclared) { data.Add(statement.LoopVariableName); } return(base.VisitForEachInStatement(statement, data)); }
public override JsStatement VisitForEachInStatement(JsForEachInStatement statement, object data) { bool old = _unnamedIsMatch; _unnamedIsMatch = false; VisitStatement(statement.Body, null); _unnamedIsMatch = old; return(statement); }
public override JsStatement VisitForEachInStatement(JsForEachInStatement statement, Tuple <Dictionary <string, string>, HashSet <string> > data) { string newName; if (data.Item1.TryGetValue(statement.LoopVariableName, out newName)) { return(JsStatement.ForIn(newName, VisitExpression(statement.ObjectToIterateOver, data), VisitStatement(statement.Body, data), statement.IsLoopVariableDeclared)); } else { return(base.VisitForEachInStatement(statement, data)); } }
public object VisitForEachInStatement(JsForEachInStatement statement, bool addNewline) { _cb.Append("for").Append(_space + "("); if (statement.IsLoopVariableDeclared) { _cb.Append("var "); } _cb.Append(statement.LoopVariableName) .Append(" in "); VisitExpression(statement.ObjectToIterateOver, false); _cb.Append(")" + _space); VisitStatement(statement.Body, addNewline); return(null); }
public override JsStatement VisitForEachInStatement(JsForEachInStatement statement, object data) { var objectToIterateOver = VisitExpression(statement.ObjectToIterateOver, data); var body = VisitStatement(statement.Body, data); if (statement.IsLoopVariableDeclared) { _variables.Add(statement.LoopVariableName); return(new JsForEachInStatement(statement.LoopVariableName, objectToIterateOver, body, false)); } else { return(ReferenceEquals(objectToIterateOver, statement.ObjectToIterateOver) && ReferenceEquals(body, statement.Body) ? statement : new JsForEachInStatement(statement.LoopVariableName, objectToIterateOver, body, false)); } }
public override JsStatement VisitForEachInStatement(JsForEachInStatement statement, object data) { _result.Add(statement.LoopVariableName); return(base.VisitForEachInStatement(statement, data)); }
public override JsStatement VisitForEachInStatement(JsForEachInStatement statement, object data) { var body = VisitLoopBody(statement.Body, data); return(ReferenceEquals(body, statement.Body) ? statement : new JsForEachInStatement(statement.LoopVariableName, statement.ObjectToIterateOver, body, statement.IsLoopVariableDeclared)); }