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.intellij.util.SmartList;
008    
009    import java.util.List;
010    
011    public final class JsNew extends JsExpressionImpl.JsExpressionHasArguments {
012        private JsExpression constructorExpression;
013    
014        public JsNew(JsExpression constructorExpression) {
015            this(constructorExpression, new SmartList<JsExpression>());
016        }
017    
018        public JsNew(JsExpression constructorExpression, List<JsExpression> arguments) {
019            super(arguments);
020            this.constructorExpression = constructorExpression;
021        }
022    
023        public JsExpression getConstructorExpression() {
024            return constructorExpression;
025        }
026    
027        @Override
028        public void accept(JsVisitor v) {
029            v.visitNew(this);
030        }
031    
032        @Override
033        public void acceptChildren(JsVisitor visitor) {
034            visitor.accept(constructorExpression);
035            visitor.acceptList(arguments);
036        }
037    }