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

Unified Diff: tests/compiler/dart2js/class_codegen_test.dart

Issue 11265020: Minifying renamer for classes, methods and instance variables. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: tests/compiler/dart2js/class_codegen_test.dart
diff --git a/tests/compiler/dart2js/class_codegen_test.dart b/tests/compiler/dart2js/class_codegen_test.dart
index 6d751f07cd60f75e9af72b8233dab16821dac61b..a682024f93d848b6a64caa73594958eff074c5be 100644
--- a/tests/compiler/dart2js/class_codegen_test.dart
+++ b/tests/compiler/dart2js/class_codegen_test.dart
@@ -62,33 +62,66 @@ main() {
}
""";
+
+String getClassName(String generated, int idx) {
floitsch 2012/10/25 12:58:38 index
+ RegExp classNameRE = new RegExp(r'\$\$.([A-Za-z]) ?= ?\{"":');
+ return classNameRE.allMatches(generated)[idx][1];
+}
+
+String classRE(className) {
+ return '\\\$.$className ?= ?\\{"":\\s*\\[\\],\\s*"super": ?"O(bject)?"';
+}
+
+subClass() {
+
twoClasses() {
String generated = compileAll(TEST_ONE);
- Expect.isTrue(generated.contains('\$.A = {"": [],\n "super": "Object"'));
- Expect.isTrue(generated.contains('\$.B = {"": [],\n "super": "Object"'));
+ String className = getClassName(generated, 0);
+ String className2 = getClassName(generated, 1);
+ Expect.isFalse(className == className2);
+ Expect.isTrue(new RegExp(classRe(className)).hasMatch(generated));
+ Expect.isTrue(new RegExp(classRe(className2)).hasMatch(generated));
}
subClass() {
- checkOutput(String generated) {
- Expect.isTrue(generated.contains('\$.A = {"": [],\n "super": "Object"'));
- Expect.isTrue(generated.contains('\$.B = {"": [],\n "super": "A"'));
+ void checkForClass(String generated, String className, String superClass) {
+ RegExp re = new RegExp(
+ '\\\$\\.$className ?= ?\\{"":\\s*\\[\\],\\s*"super": ?"$superClass"');
floitsch 2012/10/25 12:58:38 Not sure if it's better, but it would get rid of s
+ Expect.isTrue(re.hasMatch(generated));
+ }
+
+ checkOutput1(String generated) {
+ String className = getClassName(generated, 0);
+ String className2 = getClassName(generated, 1);
+ checkForClass(generated, className, 'O(bject)?');
+ checkForClass(generated, className2, className);
+ }
+
+ checkOutput2(String generated) {
+ String className = getClassName(generated, 0);
+ String className2 = getClassName(generated, 1);
+ checkForClass(generated, className, className2);
+ checkForClass(generated, className2, 'O(bject)?');
}
- checkOutput(compileAll(TEST_TWO));
- checkOutput(compileAll(TEST_THREE));
+ checkOutput1(compileAll(TEST_TWO));
+ checkOutput2(compileAll(TEST_THREE));
}
fieldTest() {
String generated = compileAll(TEST_FOUR);
- Expect.isTrue(generated.contains(r"""
-$.B = {"": ["y", "z", "x"],
+ var className = getClassName(generated, 1);
+ Expect.isTrue(generated.contains("""
+\$.$className = {"":
+ ["y", "z", "x"],
"super": "A"
}"""));
}
constructor1() {
String generated = compileAll(TEST_FIVE);
- Expect.isTrue(generated.contains(r"new $.A(a);"));
+ Expect.isTrue(generated.contains(r"new $.A(a);") ||
+ generated.contains(r"new $.S(a);"));
}
main() {

Powered by Google App Engine
This is Rietveld 408576698