dart-sdk/tests/language_2/deferred_inlined_test.dart
Ben Konyi 30dde80447 Migrated test block 57 to Dart 2.0.
Bug:
Change-Id: I4b6845b0539fc5b8bb7118d6e920685afb0b3edc
Reviewed-on: https://dart-review.googlesource.com/5342
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
2017-09-13 18:08:58 +00:00

37 lines
818 B
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.
// VMOptions=--optimization-counter-threshold=10
// Declares foo that returns 42.
import "deferred_constraints_lib2.dart" deferred as lib;
import 'package:expect/expect.dart';
bool libLoaded = false;
main() {
Expect.equals(88, heyhey());
// Trigger optimization of 'hehey' which inlines 'barbar'.
for (int i = 0; i < 30000; i++) {
heyhey();
}
lib.loadLibrary().then((_) {
libLoaded = true;
Expect.equals(42, heyhey());
});
}
// Inline bar in optimized code.
heyhey() => barbar();
barbar() {
if (libLoaded) {
// Returns 42.
return lib.foo();
}
return 88;
}