Index: tests/compiler/dart2js/deferred_dont_inline_deferred_globals_test.dart |
diff --git a/tests/compiler/dart2js/deferred_dont_inline_deferred_constants_test.dart b/tests/compiler/dart2js/deferred_dont_inline_deferred_globals_test.dart |
similarity index 51% |
copy from tests/compiler/dart2js/deferred_dont_inline_deferred_constants_test.dart |
copy to tests/compiler/dart2js/deferred_dont_inline_deferred_globals_test.dart |
index ae30c6b444ae5dbac5e9002bc0cd8368b4294dc7..8e9642af2172a82331398b9dce39dbc2cb8b9acf 100644 |
--- a/tests/compiler/dart2js/deferred_dont_inline_deferred_constants_test.dart |
+++ b/tests/compiler/dart2js/deferred_dont_inline_deferred_globals_test.dart |
@@ -62,56 +62,18 @@ void main() { |
var outputUnitForElement = compiler.deferredLoadTask.outputUnitForElement; |
var lib1 = lookupLibrary("memory:lib1.dart"); |
- var foo1 = lib1.find("foo"); |
+ var foo1 = lib1.find("finalVar"); |
var ou_lib1 = outputUnitForElement(foo1); |
- var lib2 = lookupLibrary("memory:lib2.dart"); |
- var foo2 = lib2.find("foo"); |
- var ou_lib2 = outputUnitForElement(foo2); |
- |
- var fooMain = compiler.mainApp.find("foo"); |
- var ou_lib1_lib2 = outputUnitForElement(fooMain); |
- |
String mainOutput = outputs["main.js"].mem.toString(); |
String lib1Output = outputs["out_${ou_lib1.name}.part.js"].mem.toString(); |
- String lib2Output = outputs["out_${ou_lib2.name}.part.js"].mem.toString(); |
- String lib12Output = |
- outputs["out_${ou_lib1_lib2.name}.part.js"].mem.toString(); |
- // Test that the deferred constants are not inlined into the main file. |
+ // Test that the deferred globals are not inlined into the main file. |
RegExp re1 = new RegExp(r"= .string1"); |
RegExp re2 = new RegExp(r"= .string2"); |
- RegExp re3 = new RegExp(r"= 1010"); |
Expect.isTrue(re1.hasMatch(lib1Output)); |
Expect.isTrue(re2.hasMatch(lib1Output)); |
- Expect.isTrue(re3.hasMatch(lib1Output)); |
Expect.isFalse(re1.hasMatch(mainOutput)); |
Expect.isFalse(re2.hasMatch(mainOutput)); |
- Expect.isFalse(re3.hasMatch(mainOutput)); |
- // Test that the non-deferred constant is inlined. |
- Expect.isTrue(new RegExp(r"print\(.string3.\)").hasMatch(mainOutput)); |
- Expect.isFalse(new RegExp(r"= .string3").hasMatch(mainOutput)); |
- Expect.isTrue(new RegExp(r"print\(.string4.\)").hasMatch(mainOutput)); |
- |
- // C(1) is shared between main, lib1 and lib2. Test that lib1 and lib2 each |
- // has a reference to it. It is defined in the main output file. |
- Expect.isTrue(new RegExp(r"C.C_1 =").hasMatch(mainOutput)); |
- Expect.isFalse(new RegExp(r"= C.C_1").hasMatch(mainOutput)); |
- |
- Expect.isTrue(new RegExp(r"= C.C_1").hasMatch(lib1Output)); |
- Expect.isTrue(new RegExp(r"= C.C_1").hasMatch(lib2Output)); |
- |
- // C(2) is shared between lib1 and lib2, each of them has their own |
- // reference to it. |
- Expect.isFalse(new RegExp(r"= C.C_2").hasMatch(mainOutput)); |
- |
- Expect.isTrue(new RegExp(r"= C.C_2").hasMatch(lib1Output)); |
- Expect.isTrue(new RegExp(r"= C.C_2").hasMatch(lib2Output)); |
- Expect.isTrue(new RegExp(r"C.C_2 =").hasMatch(lib12Output)); |
- |
- // "string4" is shared between lib1 and lib2, but it can be inlined. |
- Expect.isTrue(new RegExp(r"= .string4").hasMatch(lib1Output)); |
- Expect.isTrue(new RegExp(r"= .string4").hasMatch(lib2Output)); |
- Expect.isFalse(new RegExp(r"= .string4").hasMatch(lib12Output)); |
})); |
} |
@@ -120,58 +82,17 @@ const Map MEMORY_SOURCE_FILES = const {"main.dart": """ |
import "dart:async"; |
import 'lib1.dart' deferred as lib1; |
-import 'lib2.dart' deferred as lib2; |
- |
-const c = "string3"; |
- |
-class C { |
- final p; |
- const C(this.p); |
-} |
- |
-foo() => print("main"); |
void main() { |
lib1.loadLibrary().then((_) { |
- lib2.loadLibrary().then((_) { |
- lib1.foo(); |
- lib2.foo(); |
- print(lib1.C1); |
- print(lib1.C2); |
- print(lib1.C.C3); |
- print(c); |
- print(lib1.C4); |
- print(lib2.C4); |
- print(lib1.C5); |
- print(lib2.C5); |
- print(lib1.C6); |
- print(lib2.C6); |
- print("string4"); |
- print(const C(1)); |
- }); |
+ print(lib1.finalVar); |
+ print(lib1.globalVar); |
+ lib1.globalVar = "foobar"; |
+ print(lib1.globalVar); |
}); |
} |
""", "lib1.dart": """ |
import "main.dart" as main; |
-const C1 = "string1"; |
-const C2 = 1010; |
-class C { |
- static const C3 = "string2"; |
-} |
-const C4 = "string4"; |
-const C5 = const main.C(1); |
-const C6 = const main.C(2); |
-foo() { |
- print("lib1"); |
- main.foo(); |
-} |
-""", "lib2.dart": """ |
-import "main.dart" as main; |
-const C4 = "string4"; |
-const C5 = const main.C(1); |
-const C6 = const main.C(2); |
-foo() { |
- print("lib2"); |
- main.foo(); |
-} |
+final finalVar = "string1"; |
+var globalVar = "string2"; |
"""}; |