mirror of
https://github.com/dart-lang/sdk
synced 2024-09-19 14:51:30 +00:00
30dde80447
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>
37 lines
818 B
Dart
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;
|
|
}
|