| Index: dart/sdk/bin/dart2js
|
| diff --git a/dart/sdk/bin/dart2js b/dart/sdk/bin/dart2js
|
| index dfa5228d0a399e9cb19f409570a0dc9a5909cf63..de567a73b3fc69d92ba481434573aa348cb07311 100755
|
| --- a/dart/sdk/bin/dart2js
|
| +++ b/dart/sdk/bin/dart2js
|
| @@ -3,24 +3,61 @@
|
| # for details. All rights reserved. Use of this source code is governed by a
|
| # BSD-style license that can be found in the LICENSE file.
|
|
|
| -# Setting BIN_DIR this way is ugly, but is needed to handle the case where
|
| -# dart-sdk/bin has been symlinked to. On MacOS, readlink doesn't work
|
| -# with this case.
|
| -BIN_DIR="$(cd "${0%/*}" ; pwd -P)"
|
| +function follow_links() {
|
| + while [ -h "$1" ]; do
|
| + # On Mac OS, readlink -f doesn't work.
|
| + 1="$(readlink "$1")"
|
| + done
|
| + echo "$1"
|
| +}
|
| +
|
| +# Unlike $0, $BASH_SOURCE points to the absolute path of this file.
|
| +PROG_NAME="$(follow_links "$BASH_SOURCE")"
|
| +
|
| +# Handle the case where dart-sdk/bin has been symlinked to.
|
| +BIN_DIR="$(follow_links "$(cd "${PROG_NAME%/*}" ; pwd -P)")"
|
| +
|
| +SDK_DIR="$(cd "${BIN_DIR}/.." ; pwd -P)"
|
| +
|
| +DART2JS="$SDK_DIR/lib/_internal/compiler/implementation/dart2js.dart"
|
| +DART="$BIN_DIR/dart"
|
| +
|
| +unset EXTRA_OPTIONS
|
| +declare -a EXTRA_OPTIONS
|
|
|
| -unset COLORS
|
| if test -t 1; then
|
| # Stdout is a terminal.
|
| if test 8 -le `tput colors`; then
|
| # Stdout has at least 8 colors, so enable colors.
|
| - COLORS="--enable-diagnostic-colors"
|
| + EXTRA_OPTIONS[${#EXTRA_OPTIONS[@]}]='--enable-diagnostic-colors'
|
| fi
|
| fi
|
|
|
| -unset SNAPSHOT
|
| -if test -f "$BIN_DIR/../lib/_internal/compiler/implementation/dart2js.dart.snapshot"; then
|
| +unset EXTRA_VM_OPTIONS
|
| +declare -a EXTRA_VM_OPTIONS
|
| +
|
| +SNAPSHOT="$SDK_DIR/_internal/compiler/implementation/dart2js.dart.snapshot"
|
| +if test -f "$SNAPSHOT"; then
|
| # TODO(ahe): Remove the following line when we are relatively sure it works.
|
| - echo Using snapshot "$BIN_DIR/../lib/_internal/compiler/implementation/dart2js.dart.snapshot" 1>&2
|
| - SNAPSHOT="--use_script_snapshot=$BIN_DIR/../lib/_internal/compiler/implementation/dart2js.dart.snapshot"
|
| + echo Using snapshot "$SNAPSHOT" 1>&2
|
| + EXTRA_VM_OPTIONS[${#EXTRA_VM_OPTIONS[@]}]="--use_script_snapshot=$SNAPSHOT"
|
| fi
|
| -exec "$BIN_DIR"/dart --no_use_inlining --heap_growth_rate=32 $SNAPSHOT "$BIN_DIR/../lib/_internal/compiler/implementation/dart2js.dart" $COLORS "$@"
|
| +
|
| +# Tell the VM to grow the heap more aggressively. This should only
|
| +# be necessary temporarily until the VM is better at detecting how
|
| +# applications use memory.
|
| +# TODO(ahe): Remove this option (http://dartbug.com/6495).
|
| +EXTRA_VM_OPTIONS[${#EXTRA_VM_OPTIONS[@]}]='--heap_growth_rate=512'
|
| +
|
| +# Tell the VM to don't bother inlining methods. So far inlining isn't
|
| +# paying off but the VM team is working on fixing that.
|
| +# TODO(ahe): Remove this option (http://dartbug.com/6495).
|
| +EXTRA_VM_OPTIONS[${#EXTRA_VM_OPTIONS[@]}]='--no_use_inlining'
|
| +
|
| +case $0 in
|
| + *_developer)
|
| + EXTRA_VM_OPTIONS[${#EXTRA_VM_OPTIONS[@]}]='--checked'
|
| + ;;
|
| +esac
|
| +
|
| +exec "$DART" "${EXTRA_VM_OPTIONS[@]}" "$DART2JS" "${EXTRA_OPTIONS[@]}" "$@"
|
|
|