Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(39)

Side by Side Diff: tests/compiler/dart2js/interop_anonymous_unreachable_test.dart

Issue 2345083003: dart2js: run dartfmt on tests (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library tests.dart2js.interop_anonymous_unreachable_test; 5 library tests.dart2js.interop_anonymous_unreachable_test;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:test/test.dart'; 9 import 'package:test/test.dart';
10 import 'compiler_helper.dart'; 10 import 'compiler_helper.dart';
11 11
12
13 main() { 12 main() {
14 test("unreachable code doesn't crash the compiler", () async { 13 test("unreachable code doesn't crash the compiler", () async {
15 // This test is a regression for Issue #24974 14 // This test is a regression for Issue #24974
16 String generated = await compile(""" 15 String generated = await compile(
16 """
17 import 'package:js/js.dart'; 17 import 'package:js/js.dart';
18 18
19 @JS() @anonymous 19 @JS() @anonymous
20 class UniqueLongNameForTesting_A { 20 class UniqueLongNameForTesting_A {
21 external factory UniqueLongNameForTesting_A(); 21 external factory UniqueLongNameForTesting_A();
22 } 22 }
23 main() {} 23 main() {}
24 """, returnAll: true); 24 """,
25 returnAll: true);
25 26
26 // the code should not be included in the output either. 27 // the code should not be included in the output either.
27 expect(generated, isNot(contains("UniqueLongNameForTesting_A"))); 28 expect(generated, isNot(contains("UniqueLongNameForTesting_A")));
28 }); 29 });
29 30
30 group('tree-shaking interop types', () { 31 group('tree-shaking interop types', () {
31 String program = """ 32 String program = """
32 import 'package:js/js.dart'; 33 import 'package:js/js.dart';
33 34
34 // reachable and allocated 35 // reachable and allocated
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 expect(generated.contains("UniqueLongNameForTesting_A"), isTrue); 77 expect(generated.contains("UniqueLongNameForTesting_A"), isTrue);
77 expect(generated.contains("UniqueLongNameForTesting_D"), isTrue); 78 expect(generated.contains("UniqueLongNameForTesting_D"), isTrue);
78 79
79 expect(generated.contains("UniqueLongNameForTesting_B"), isTrue); 80 expect(generated.contains("UniqueLongNameForTesting_B"), isTrue);
80 expect(generated.contains("UniqueLongNameForTesting_C"), isTrue); 81 expect(generated.contains("UniqueLongNameForTesting_C"), isTrue);
81 expect(generated.contains("UniqueLongNameForTesting_E"), isTrue); 82 expect(generated.contains("UniqueLongNameForTesting_E"), isTrue);
82 }); 83 });
83 84
84 test('tree-shake when using flag', () async { 85 test('tree-shake when using flag', () async {
85 String generated = await compile(program, 86 String generated = await compile(program,
86 trustJSInteropTypeAnnotations: true, 87 trustJSInteropTypeAnnotations: true, returnAll: true);
87 returnAll: true);
88 expect(generated.contains("UniqueLongNameForTesting_A"), isTrue); 88 expect(generated.contains("UniqueLongNameForTesting_A"), isTrue);
89 expect(generated.contains("UniqueLongNameForTesting_D"), isTrue); 89 expect(generated.contains("UniqueLongNameForTesting_D"), isTrue);
90 90
91 expect(generated.contains("UniqueLongNameForTesting_B"), isFalse); 91 expect(generated.contains("UniqueLongNameForTesting_B"), isFalse);
92 expect(generated.contains("UniqueLongNameForTesting_C"), isFalse); 92 expect(generated.contains("UniqueLongNameForTesting_C"), isFalse);
93 expect(generated.contains("UniqueLongNameForTesting_E"), isFalse); 93 expect(generated.contains("UniqueLongNameForTesting_E"), isFalse);
94 }); 94 });
95 }); 95 });
96 96
97 group('tree-shaking other native types', () { 97 group('tree-shaking other native types', () {
(...skipping 21 matching lines...) Expand all
119 expect(generated.contains("UniqueLongNameForTesting_A"), isTrue); 119 expect(generated.contains("UniqueLongNameForTesting_A"), isTrue);
120 // any js-interop type could be allocated by `get x` 120 // any js-interop type could be allocated by `get x`
121 expect(generated.contains("UniqueLongNameForTesting_B"), isTrue); 121 expect(generated.contains("UniqueLongNameForTesting_B"), isTrue);
122 // but we exclude other native types like HTMLAudioElement 122 // but we exclude other native types like HTMLAudioElement
123 expect(generated.contains("HTMLAudioElement"), isFalse); 123 expect(generated.contains("HTMLAudioElement"), isFalse);
124 }); 124 });
125 125
126 test('allocation effect of dynamic excludes native types [flag]', () async { 126 test('allocation effect of dynamic excludes native types [flag]', () async {
127 // Trusting types doesn't make a difference. 127 // Trusting types doesn't make a difference.
128 String generated = await compile(program, 128 String generated = await compile(program,
129 trustJSInteropTypeAnnotations: true, 129 trustJSInteropTypeAnnotations: true, returnAll: true);
130 returnAll: true);
131 expect(generated.contains("UniqueLongNameForTesting_A"), isTrue); 130 expect(generated.contains("UniqueLongNameForTesting_A"), isTrue);
132 expect(generated.contains("UniqueLongNameForTesting_B"), isTrue); 131 expect(generated.contains("UniqueLongNameForTesting_B"), isTrue);
133 expect(generated.contains("HTMLAudioElement"), isFalse); 132 expect(generated.contains("HTMLAudioElement"), isFalse);
134 }); 133 });
135 134
136 test('declared native types are included in allocation effect', () async { 135 test('declared native types are included in allocation effect', () async {
137 String program2 = """ 136 String program2 = """
138 import 'dart:html'; 137 import 'dart:html';
139 import 'package:js/js.dart'; 138 import 'package:js/js.dart';
140 139
(...skipping 27 matching lines...) Expand all
168 167
169 generated = await compile(program2, returnAll: true); 168 generated = await compile(program2, returnAll: true);
170 expect(generated.contains("UniqueLongNameForTesting_A"), isTrue); 169 expect(generated.contains("UniqueLongNameForTesting_A"), isTrue);
171 // This extra check is to make sure that we don't include HTMLAudioElement 170 // This extra check is to make sure that we don't include HTMLAudioElement
172 // just because of the is-check. It is optimized away in this case because 171 // just because of the is-check. It is optimized away in this case because
173 // we believe it was never instantiated. 172 // we believe it was never instantiated.
174 expect(generated.contains("HTMLAudioElement"), isFalse); 173 expect(generated.contains("HTMLAudioElement"), isFalse);
175 }); 174 });
176 }); 175 });
177 } 176 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698