// Copyright (c) 2014, 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. import "package:expect/expect.dart"; import 'dart:math'; // Test that String interpolation works in some optimized cases. bool get inscrutableFalse => Random().nextDouble() > 2; returnsNullOrString(x) { if (inscrutableFalse) return 'hi'; if (inscrutableFalse) return null; return x; } returnsNullOrInt(x) { if (inscrutableFalse) return 123; if (inscrutableFalse) return null; return x; } spoil(a) { a[3] = 123; a[4] = 'ddd'; } void testString() { var a = []..length = 100; // 'null' values in here are JavaScript undefined. spoil(a); var s = returnsNullOrString('hi'); var x = a[2]; if (x == null) { s = returnsNullOrString(x); } Expect.equals('s: null', 's: $s'); } void testInt() { var a = []..length = 100; // 'null' values in here are JavaScript undefined. spoil(a); var s = returnsNullOrInt(123); var x = a[2]; if (x == null) { s = returnsNullOrInt(x); } Expect.equals('s: null', 's: $s'); } void main() { testInt(); testString(); }