public override void Visit(LabelStatement node) { //Trace.Fail("Visitor for node type {0} is not implemented", node.GetType()); VisitNode(node.Target); Visit((Statement)node); }
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); }
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; }
public override void Visit(LabelStatement node) { throw new NotImplementedException(); }
public override void Visit(LabelStatement node) { VisitNode(node.Target); }