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

Unified Diff: lib/compiler/implementation/compiler.dart

Issue 10414024: Add a flag to control the backend. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Last version Created 8 years, 7 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: lib/compiler/implementation/compiler.dart
diff --git a/lib/compiler/implementation/compiler.dart b/lib/compiler/implementation/compiler.dart
index 33b542175b29b62ec1f9e99b385026fa29ef3dae..7453a5d846337921230c6bf599363da6a644a126 100644
--- a/lib/compiler/implementation/compiler.dart
+++ b/lib/compiler/implementation/compiler.dart
@@ -73,6 +73,10 @@ class JavaScriptBackend extends Backend {
void assembleProgram() => emitter.assembleProgram();
}
+class DartBackend extends Backend {
+ DartBackend(Compiler compiler) : super(compiler);
+}
+
class Compiler implements DiagnosticListener {
final Map<String, LibraryElement> libraries;
int nextFreeClassId = 0;
@@ -80,7 +84,7 @@ class Compiler implements DiagnosticListener {
String assembledCode;
Namer namer;
Types types;
- bool enableTypeAssertions = false;
+ final bool enableTypeAssertions;
final Tracer tracer;
@@ -137,7 +141,9 @@ class Compiler implements DiagnosticListener {
Stopwatch codegenProgress;
- Compiler([this.tracer = const Tracer()])
+ Compiler([this.tracer = const Tracer(),
+ this.enableTypeAssertions = false,
+ bool emitJavascript = true])
: libraries = new Map<String, LibraryElement>(),
world = new World(),
codegenProgress = new Stopwatch.start() {
@@ -149,7 +155,8 @@ class Compiler implements DiagnosticListener {
validator = new TreeValidatorTask(this);
resolver = new ResolverTask(this);
checker = new TypeCheckerTask(this);
- backend = new JavaScriptBackend(this);
+ backend = emitJavascript ?
+ new JavaScriptBackend(this) : new DartBackend(this);
enqueuer = new EnqueueTask(this);
tasks = [scanner, dietParser, parser, resolver, checker,
constantHandler, enqueuer];

Powered by Google App Engine
This is Rietveld 408576698