001 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
002 // for details. All rights reserved. Use of this source code is governed by a
003 // BSD-style license that can be found in the LICENSE file.
004
005 package com.google.dart.compiler.backend.js.ast;
006
007 import com.google.dart.compiler.common.Symbol;
008
009 /**
010 * Represents a JavaScript label statement.
011 */
012 public class JsLabel extends SourceInfoAwareJsNode implements JsStatement, HasName {
013 private final JsName label;
014
015 private JsStatement statement;
016
017 public JsLabel(JsName label) {
018 this.label = label;
019 }
020
021 public JsLabel(JsName label, JsStatement statement) {
022 this.label = label;
023 this.statement = statement;
024 }
025
026 @Override
027 public JsName getName() {
028 return label;
029 }
030
031 @Override
032 public Symbol getSymbol() {
033 return label;
034 }
035
036 public JsStatement getStatement() {
037 return statement;
038 }
039
040 public void setStatement(JsStatement statement) {
041 this.statement = statement;
042 }
043
044 @Override
045 public void accept(JsVisitor v) {
046 v.visitLabel(this);
047 }
048
049 @Override
050 public void acceptChildren(JsVisitor visitor) {
051 visitor.accept(statement);
052 }
053 }