dart-sdk/tests/web/string_interpolation_opt1_test.dart
Sigmund Cherem 912005267d [web] rename suite dart2js -> web.
Change-Id: I46be49b2effec3e38a3dc44cd45cfe736f77fa78
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182680
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2021-02-04 23:11:32 +00:00

57 lines
1.2 KiB
Dart

// 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();
}