// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
// 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.

// Test that dart2js's inferrer and code optimizers know a double
// literal might become an int at runtime.

import "package:expect/expect.dart";
import '../../language_2/compiler_annotations.dart';

@DontInline()
callWithStringAndDouble(value) {
  () => 42;
  if (value is! int) throw new ArgumentError(value);
  return 42;
}

@DontInline()
callWithDouble(value) {
  () => 42;
  if (value is! int) throw new ArgumentError(value);
  return 42;
}

main() {
  Expect.throws(
      () => callWithStringAndDouble('foo'), (e) => e is ArgumentError);
  Expect.equals(42, callWithStringAndDouble(0.0));
  Expect.equals(42, callWithDouble(0.0));
}
