Exemple #1
0
 public override void Visit(LabelStatement node)
 {
   //Trace.Fail("Visitor for node type {0} is not implemented", node.GetType());
   VisitNode(node.Target);
   Visit((Statement)node);
 }
Exemple #2
0
 public override void Visit(LabelStatement node)
 {
   //Note: in JS, the label is for after the statements!
   var label = _ilGen.DefineLabel();
   _labelInfos.PushLabel(node, label);
   VisitNode(node.Target);
   _ilGen.MarkLabel(label);
   _labelInfos.PopLabel(node);
 }
 public override void Visit(LabelStatement node) { Visit((Statement)node); }
      public override void Visit(LabelStatement node)
      {
        //Note: in JS, the label is for after the statements!
        var breakIndexes = new LinkedList<int>();
        _labelInfos.PushLabel(node, breakIndexes);
        VisitNode(node.Target);

        UpdateJumps(GetCurrentICIndex() + 1, breakIndexes);

        _labelInfos.PopLabel(node);
      }
Exemple #5
0
 private BlockStatement BuildInlinedBody()
 {
   var body = new BlockStatement(new List<Statement>());
   AddVarDeclarationsForParams(body);
   AddRenamedSymbols();
   _returnLabelName = RenameSymbol("#ReturnLabel:");
   var clonedBody = GetCloneOf(_targetFuncMetadata.FunctionIR.Statement);
   Debug.Assert(clonedBody != null, "Invalid situation! Cloning failed!");
   var returnLabel = new LabelStatement(_returnLabelName, clonedBody);
   body.Statements.Add(returnLabel);
   return body;
 }
Exemple #6
0
 public override void Visit(LabelStatement node)
 {
   throw new NotImplementedException();
 }
 public override void Visit(LabelStatement node) { VisitNode(node.Target); }