| // 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=100 |
| |
| import "load_inval_code_lib.dart" deferred as d; |
| |
| bool loaded = false; |
| |
| var x = 0; |
| |
| bla() { |
| if (loaded) { |
| // Loading the library should have invalidated the optimized |
| // code containing the NSME. Now expect this call to succeed. |
| d.foo(); |
| } else { |
| // Do some "busy work" to trigger optimization. |
| for (var i = 0; i < 100; i++) { |
| x++; |
| } |
| } |
| } |
| |
| warmup() { |
| for (int i = 1; i < 1000; i++) { |
| bla(); |
| } |
| } |
| |
| main() { |
| warmup(); |
| d.loadLibrary().then((_) { |
| loaded = true; |
| bla(); |
| }); |
| } |