| Index: tests/compiler/dart2js_native/optimization_hints_test.dart
|
| diff --git a/tests/compiler/dart2js_native/optimization_hints_test.dart b/tests/compiler/dart2js_native/optimization_hints_test.dart
|
| index 2539849c5ff88465f2d4c7ae97dccfe8c5ac9b47..f62324e99712963f08020541aa0dd33d33e8a427 100644
|
| --- a/tests/compiler/dart2js_native/optimization_hints_test.dart
|
| +++ b/tests/compiler/dart2js_native/optimization_hints_test.dart
|
| @@ -4,8 +4,7 @@
|
|
|
| import 'dart:_js_helper' as js;
|
|
|
| -import 'dart:_foreign_helper' show
|
| - JS;
|
| +import 'dart:_foreign_helper' show JS;
|
|
|
| import 'package:expect/expect.dart';
|
|
|
| @@ -42,12 +41,48 @@ baz() {
|
|
|
| @js.NoInline()
|
| geeNoInline() {
|
| - // Use `gee` several times, so `gee` isn't used only once (and thus inlinable
|
| - // independently of its size).
|
| - gee(); gee(); gee(); gee(); gee(); gee(); gee(); gee(); gee(); gee();
|
| - gee(); gee(); gee(); gee(); gee(); gee(); gee(); gee(); gee(); gee();
|
| - gee(); gee(); gee(); gee(); gee(); gee(); gee(); gee(); gee(); gee();
|
| - gee(); gee(); gee(); gee(); gee(); gee(); gee(); gee(); gee(); gee();
|
| + // Use `gee` several times, so `gee` isn't used only once (and thus inlinable
|
| + // independently of its size).
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| + gee();
|
| }
|
|
|
| @js.ForceInline()
|
| @@ -55,21 +90,81 @@ geeNoInline() {
|
| gee([c]) {
|
| if (c != null) {
|
| x = "in gee function";
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| - geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline(); geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| + geeNoInline();
|
| }
|
| }
|
|
|
| @@ -101,24 +196,21 @@ check(func) {
|
| JS('', 'String("in check function")');
|
| var source = JS('String', 'String(#)', func);
|
| print(source);
|
| - Expect.isTrue(source.contains('"in main function"'),
|
| - "should contain 'main'");
|
| - Expect.isTrue(source.contains('"in simple function"'),
|
| - "should inline 'simple'");
|
| - Expect.isTrue(source.contains('"in foo function"'),
|
| - "should inline 'foo'");
|
| - Expect.isFalse(source.contains('"in bar function"'),
|
| - "should not inline 'bar'");
|
| - Expect.isFalse(source.contains('"in check function"'),
|
| - "should not inline 'check'");
|
| + Expect.isTrue(source.contains('"in main function"'), "should contain 'main'");
|
| + Expect.isTrue(
|
| + source.contains('"in simple function"'), "should inline 'simple'");
|
| + Expect.isTrue(source.contains('"in foo function"'), "should inline 'foo'");
|
| + Expect.isFalse(
|
| + source.contains('"in bar function"'), "should not inline 'bar'");
|
| + Expect.isFalse(
|
| + source.contains('"in check function"'), "should not inline 'check'");
|
| Expect.isFalse(source.contains('"in noinline function"'),
|
| - "should not inline 'noinline'");
|
| + "should not inline 'noinline'");
|
| Expect.equals(2, new RegExp(r'\.c_field').allMatches(source).length,
|
| - "should contain r'\.c_field' exactly twice");
|
| - Expect.isFalse(source.contains('.d_field'),
|
| - "should not contain r'\.d_field'");
|
| - Expect.isTrue(source.contains('"in gee function"'),
|
| - "must inline 'gee'");
|
| + "should contain r'\.c_field' exactly twice");
|
| + Expect.isFalse(
|
| + source.contains('.d_field'), "should not contain r'\.d_field'");
|
| + Expect.isTrue(source.contains('"in gee function"'), "must inline 'gee'");
|
| }
|
|
|
| simple() {
|
|
|