public override JsStatement VisitBreakStatement(JsBreakStatement statement, object data)
 {
     if (statement.TargetLabel == null && _unnamedIsMatch || (statement.TargetLabel != null && statement.TargetLabel == _statementName))
     {
         _result = true;
     }
     return(statement);
 }
示例#2
0
 public override JsNode Visit(JsBreakStatement node)
 {
     escapeStatements.Add(new EscapeStatement {
         Type = Break, Label = node.Label
     });
     return(Js.Return(Js.Object(
                          Js.Item(EscapeTypeField, Js.Primitive(Break)),
                          Js.Item(EscapeLabelField, node.Label != null ? Js.Primitive(node.Label) : Js.Null()),
                          Js.Item(EscapeDepthField, node.Label != null ? Js.Primitive(transformer.GetLabelDepth(node.Label)) : Js.Primitive(0))
                          ).Compact()));
 }
示例#3
0
        public override void VisitBreakStatement(JsBreakStatement node)
        {
            output.Append("break");

            if (node.Label != null)
            {
                output.Append(" ");
                output.Append(node.Label);
            }

            output.AppendLine(";");
        }
示例#4
0
 public object VisitBreakStatement(JsBreakStatement statement, bool addNewline)
 {
     _cb.Append("break");
     if (statement.TargetLabel != null)
     {
         _cb.Append(" ").Append(statement.TargetLabel);
     }
     _cb.Append(";");
     if (addNewline)
     {
         _cb.AppendLine();
     }
     return(null);
 }
        public override JsStatement VisitBreakStatement(JsBreakStatement statement, object data)
        {
            Tuple <string, State> state;

            if (statement.TargetLabel == null)
            {
                state = _breakStack.Peek();
            }
            else
            {
                state = _breakStack.SingleOrDefault(x => x != null && x.Item1 == statement.TargetLabel);
            }

            if (state != null)
            {
                return(new JsGotoStateStatement(state.Item2, _currentState));
            }
            else
            {
                return(statement);
            }
        }
示例#6
0
 public virtual JsNode Visit(JsBreakStatement node)
 {
     return(DefaultVisit(node, x => x));
 }
示例#7
0
 public virtual void Visit(JsBreakStatement node)
 {
     DefaultVisit(node);
 }
 public virtual JsStatement VisitBreakStatement(JsBreakStatement statement, TData data)
 {
     return(statement);
 }
示例#9
0
 public void Visit(JsBreakStatement node)
 {
     BeforeVisit(node);
     DefaultVisit(node, VisitBreakStatement);
     AfterVisit(node);
 }
示例#10
0
 public virtual void VisitBreakStatement(JsBreakStatement node)
 {
 }