001    package com.google.dart.compiler.backend.js.ast;
002    
003    public class ChameleonJsExpression implements JsExpression {
004        private JsExpression expression;
005    
006        public ChameleonJsExpression(JsExpression initialExpression) {
007            expression = initialExpression;
008        }
009    
010        public ChameleonJsExpression() {
011        }
012    
013        public void resolve(JsExpression expression) {
014            this.expression = expression;
015        }
016    
017        @Override
018        public boolean isLeaf() {
019            return expression.isLeaf();
020        }
021    
022        @Override
023        public JsStatement makeStmt() {
024            return expression.makeStmt();
025        }
026    
027        @Override
028        public void accept(JsVisitor visitor) {
029            expression.accept(visitor);
030        }
031    
032        @Override
033        public void acceptChildren(JsVisitor visitor) {
034            expression.acceptChildren(visitor);
035        }
036    
037        @Override
038        public Object getSource() {
039            return expression.getSource();
040        }
041    
042        @Override
043        public void setSource(Object info) {
044            expression.setSource(info);
045        }
046    
047        @Override
048        public JsExpression source(Object info) {
049            return expression.source(info);
050        }
051    }