| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 class WorkItem { | 5 class WorkItem { |
| 6 final Element element; | 6 final Element element; |
| 7 TreeElements resolutionTree; | 7 TreeElements resolutionTree; |
| 8 bool allowSpeculativeOptimization = true; | 8 bool allowSpeculativeOptimization = true; |
| 9 List<HTypeGuard> guards = const <HTypeGuard>[]; | 9 List<HTypeGuard> guards = const <HTypeGuard>[]; |
| 10 | 10 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 | 64 |
| 65 void processNativeClasses(world, libraries) { | 65 void processNativeClasses(world, libraries) { |
| 66 native.processNativeClasses(world, emitter, libraries); | 66 native.processNativeClasses(world, emitter, libraries); |
| 67 } | 67 } |
| 68 | 68 |
| 69 void assembleProgram() { | 69 void assembleProgram() { |
| 70 emitter.assembleProgram(); | 70 emitter.assembleProgram(); |
| 71 } | 71 } |
| 72 } | 72 } |
| 73 | 73 |
| 74 class DartBackend extends Backend { | |
| 75 DartBackend(Compiler compiler) : super(compiler); | |
| 76 final List<CompilerTask> tasks = const <CompilerTask>[]; | |
| 77 } | |
| 78 | |
| 79 class Compiler implements DiagnosticListener { | 74 class Compiler implements DiagnosticListener { |
| 80 final Map<String, LibraryElement> libraries; | 75 final Map<String, LibraryElement> libraries; |
| 81 int nextFreeClassId = 0; | 76 int nextFreeClassId = 0; |
| 82 World world; | 77 World world; |
| 83 String assembledCode; | 78 String assembledCode; |
| 84 Namer namer; | 79 Namer namer; |
| 85 Types types; | 80 Types types; |
| 86 final bool enableTypeAssertions; | 81 final bool enableTypeAssertions; |
| 87 | 82 |
| 88 final Tracer tracer; | 83 final Tracer tracer; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 namer = new Namer(this); | 151 namer = new Namer(this); |
| 157 constantHandler = new ConstantHandler(this); | 152 constantHandler = new ConstantHandler(this); |
| 158 scanner = new ScannerTask(this); | 153 scanner = new ScannerTask(this); |
| 159 dietParser = new DietParserTask(this); | 154 dietParser = new DietParserTask(this); |
| 160 parser = new ParserTask(this); | 155 parser = new ParserTask(this); |
| 161 validator = new TreeValidatorTask(this); | 156 validator = new TreeValidatorTask(this); |
| 162 unparseValidator = new UnparseValidator(this, validateUnparse); | 157 unparseValidator = new UnparseValidator(this, validateUnparse); |
| 163 resolver = new ResolverTask(this); | 158 resolver = new ResolverTask(this); |
| 164 checker = new TypeCheckerTask(this); | 159 checker = new TypeCheckerTask(this); |
| 165 backend = emitJavascript ? | 160 backend = emitJavascript ? |
| 166 new JavaScriptBackend(this) : new DartBackend(this); | 161 new JavaScriptBackend(this) : new dart_backend.DartBackend(this); |
| 167 enqueuer = new EnqueueTask(this); | 162 enqueuer = new EnqueueTask(this); |
| 168 tasks = [scanner, dietParser, parser, resolver, checker, | 163 tasks = [scanner, dietParser, parser, resolver, checker, |
| 169 unparseValidator, constantHandler, enqueuer]; | 164 unparseValidator, constantHandler, enqueuer]; |
| 170 tasks.addAll(backend.tasks); | 165 tasks.addAll(backend.tasks); |
| 171 } | 166 } |
| 172 | 167 |
| 173 Universe get codegenWorld() => enqueuer.codegen.universe; | 168 Universe get codegenWorld() => enqueuer.codegen.universe; |
| 174 | 169 |
| 175 int getNextFreeClassId() => nextFreeClassId++; | 170 int getNextFreeClassId() => nextFreeClassId++; |
| 176 | 171 |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 595 // invariant that endOffset > beginOffset, but for EOF the | 590 // invariant that endOffset > beginOffset, but for EOF the |
| 596 // charoffset of the next token may be [beginOffset]. This can | 591 // charoffset of the next token may be [beginOffset]. This can |
| 597 // also happen for synthetized tokens that are produced during | 592 // also happen for synthetized tokens that are produced during |
| 598 // error handling. | 593 // error handling. |
| 599 final endOffset = | 594 final endOffset = |
| 600 Math.max((end.next !== null) ? end.next.charOffset : 0, beginOffset + 1); | 595 Math.max((end.next !== null) ? end.next.charOffset : 0, beginOffset + 1); |
| 601 assert(endOffset > beginOffset); | 596 assert(endOffset > beginOffset); |
| 602 return f(beginOffset, endOffset); | 597 return f(beginOffset, endOffset); |
| 603 } | 598 } |
| 604 } | 599 } |
| OLD | NEW |