Index: tests/compiler/dart2js/exit_code_test.dart |
diff --git a/tests/compiler/dart2js/exit_code_test.dart b/tests/compiler/dart2js/exit_code_test.dart |
index 1ca76fcb32f16ba2362fd6f437b4f849cd0ed833..8478d429ebb34d027b8e56fcc876274d8b78704a 100644 |
--- a/tests/compiler/dart2js/exit_code_test.dart |
+++ b/tests/compiler/dart2js/exit_code_test.dart |
@@ -11,7 +11,9 @@ import 'package:async_helper/async_helper.dart'; |
import 'package:expect/expect.dart'; |
import 'package:compiler/compiler_new.dart' as api; |
+import 'package:compiler/src/common/backend_api.dart'; |
import 'package:compiler/src/common/codegen.dart'; |
+import 'package:compiler/src/common/resolution.dart'; |
import 'package:compiler/src/compile_time_constants.dart'; |
import 'package:compiler/src/compiler.dart'; |
import 'package:compiler/src/dart2js.dart' as entry; |
@@ -20,8 +22,8 @@ import 'package:compiler/src/diagnostics/invariant.dart'; |
import 'package:compiler/src/diagnostics/messages.dart'; |
import 'package:compiler/src/diagnostics/spannable.dart'; |
import 'package:compiler/src/apiimpl.dart' as apiimpl; |
-import 'package:compiler/src/enqueue.dart'; |
import 'package:compiler/src/elements/elements.dart'; |
+import 'package:compiler/src/js_backend/js_backend.dart'; |
import 'package:compiler/src/library_loader.dart'; |
import 'package:compiler/src/null_compiler_output.dart'; |
import 'package:compiler/src/options.dart' show CompilerOptions; |
@@ -52,9 +54,17 @@ class TestCompiler extends apiimpl.CompilerImpl { |
} |
@override |
+ Backend createBackend() { |
+ return new TestBackend(this); |
+ } |
+ |
+ @override |
ScannerTask createScannerTask() => new TestScanner(this); |
@override |
+ Resolution createResolution() => new TestResolution(this); |
+ |
+ @override |
ResolverTask createResolverTask() { |
return new TestResolver(this, backend.constantCompilerTask); |
} |
@@ -74,16 +84,6 @@ class TestCompiler extends apiimpl.CompilerImpl { |
return super.onLibrariesLoaded(loadedLibraries); |
} |
- WorldImpact analyzeElement(Element element) { |
- test('Compiler.analyzeElement'); |
- return super.analyzeElement(element); |
- } |
- |
- WorldImpact codegen(CodegenWorkItem work, Enqueuer world) { |
- test('Compiler.codegen'); |
- return super.codegen(work, world); |
- } |
- |
test(String marker) { |
if (marker == testMarker) { |
switch (testType) { |
@@ -121,6 +121,23 @@ class TestCompiler extends apiimpl.CompilerImpl { |
} |
} |
+class TestBackend extends JavaScriptBackend { |
+ final TestCompiler compiler; |
+ TestBackend(TestCompiler compiler) |
+ : this.compiler = compiler, |
+ super(compiler, |
+ generateSourceMap: compiler.options.generateSourceMap, |
+ useStartupEmitter: compiler.options.useStartupEmitter, |
+ useNewSourceInfo: compiler.options.useNewSourceInfo, |
+ useKernel: compiler.options.useKernel); |
+ |
+ @override |
+ WorldImpact codegen(CodegenWorkItem work) { |
+ compiler.test('Compiler.codegen'); |
+ return super.codegen(work); |
+ } |
+} |
+ |
class TestDiagnosticReporter extends DiagnosticReporterWrapper { |
TestCompiler compiler; |
DiagnosticReporter reporter; |
@@ -161,6 +178,20 @@ class TestResolver extends ResolverTask { |
} |
} |
+class TestResolution extends CompilerResolution { |
+ TestCompiler compiler; |
+ |
+ TestResolution(TestCompiler compiler) |
+ : this.compiler = compiler, |
+ super(compiler); |
+ |
+ @override |
+ WorldImpact computeWorldImpact(Element element) { |
+ compiler.test('Compiler.analyzeElement'); |
+ return super.computeWorldImpact(element); |
+ } |
+} |
+ |
int checkedResults = 0; |
Future testExitCode( |