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 org.jetbrains.annotations.NotNull;
008    
009    /**
010     * Used in object literals to specify property values by name.
011     */
012    public class JsPropertyInitializer extends SourceInfoAwareJsNode {
013        private JsExpression labelExpr;
014        private JsExpression valueExpr;
015    
016        public JsPropertyInitializer(@NotNull JsExpression labelExpr) {
017            this.labelExpr = labelExpr;
018        }
019    
020        public JsPropertyInitializer(@NotNull JsExpression labelExpr, @NotNull JsExpression valueExpr) {
021            this(labelExpr);
022            this.valueExpr = valueExpr;
023        }
024    
025        public JsExpression getLabelExpr() {
026            return labelExpr;
027        }
028    
029        public JsExpression getValueExpr() {
030            return valueExpr;
031        }
032    
033        public void setValueExpr(@NotNull JsExpression valueExpr) {
034            this.valueExpr = valueExpr;
035        }
036    
037        @Override
038        public void accept(JsVisitor v) {
039            v.visitPropertyInitializer(this);
040        }
041    
042        @Override
043        public void acceptChildren(JsVisitor visitor) {
044            visitor.accept(labelExpr);
045            visitor.accept(valueExpr);
046        }
047    }