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));
        }
Пример #2
0
 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));
 }
Пример #3
0
 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);
        }
Пример #5
0
            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));
                }
            }
Пример #6
0
 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));
            }
        }
Пример #8
0
 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));
        }