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.util;
006    
007    import com.google.dart.compiler.backend.js.ast.*;
008    
009    public final class AstUtil {
010        private AstUtil() {
011        }
012    
013        /**
014         * Returns a sequence of expressions (using the binary sequence operator).
015         *
016         * @param exprs - expressions to add to sequence
017         * @return a sequence of expressions.
018         */
019        public static JsBinaryOperation newSequence(JsExpression... exprs) {
020            if (exprs.length < 2) {
021                throw new RuntimeException("newSequence expects at least two arguments");
022            }
023            JsExpression result = exprs[exprs.length - 1];
024            for (int i = exprs.length - 2; i >= 0; i--) {
025                result = new JsBinaryOperation(JsBinaryOperator.COMMA, exprs[i], result);
026            }
027            return (JsBinaryOperation) result;
028        }
029    }