| 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  |    5  | 
|    6 /** |    6 /** | 
|    7  * If true, print a warning for each method that was resolved, but not |    7  * If true, print a warning for each method that was resolved, but not | 
|    8  * compiled. |    8  * compiled. | 
|    9  */ |    9  */ | 
|   10 final bool REPORT_EXCESS_RESOLUTION = false; |   10 final bool REPORT_EXCESS_RESOLUTION = false; | 
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  141   Stopwatch progress; |  141   Stopwatch progress; | 
|  142  |  142  | 
|  143   static final int PHASE_SCANNING = 0; |  143   static final int PHASE_SCANNING = 0; | 
|  144   static final int PHASE_RESOLVING = 1; |  144   static final int PHASE_RESOLVING = 1; | 
|  145   static final int PHASE_COMPILING = 2; |  145   static final int PHASE_COMPILING = 2; | 
|  146   static final int PHASE_RECOMPILING = 3; |  146   static final int PHASE_RECOMPILING = 3; | 
|  147   int phase; |  147   int phase; | 
|  148  |  148  | 
|  149   bool compilationFailed = false; |  149   bool compilationFailed = false; | 
|  150  |  150  | 
 |  151   bool hasCrashed = false; | 
 |  152  | 
|  151   Compiler([this.tracer = const Tracer(), |  153   Compiler([this.tracer = const Tracer(), | 
|  152             this.enableTypeAssertions = false, |  154             this.enableTypeAssertions = false, | 
|  153             this.enableUserAssertions = false, |  155             this.enableUserAssertions = false, | 
|  154             bool emitJavascript = true, |  156             bool emitJavascript = true, | 
|  155             validateUnparse = false, |  157             validateUnparse = false, | 
|  156             generateSourceMap = true]) |  158             generateSourceMap = true]) | 
|  157       : libraries = new Map<String, LibraryElement>(), |  159       : libraries = new Map<String, LibraryElement>(), | 
|  158         world = new World(), |  160         world = new World(), | 
|  159         progress = new Stopwatch.start() { |  161         progress = new Stopwatch.start() { | 
|  160     namer = new Namer(this); |  162     namer = new Namer(this); | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  196                      [Node node, Token token, HInstruction instruction, |  198                      [Node node, Token token, HInstruction instruction, | 
|  197                       Element element]) { |  199                       Element element]) { | 
|  198     cancel('Internal error: $message', node, token, instruction, element); |  200     cancel('Internal error: $message', node, token, instruction, element); | 
|  199   } |  201   } | 
|  200  |  202  | 
|  201   void internalErrorOnElement(Element element, String message) { |  203   void internalErrorOnElement(Element element, String message) { | 
|  202     internalError(message, element: element); |  204     internalError(message, element: element); | 
|  203   } |  205   } | 
|  204  |  206  | 
|  205   void unhandledExceptionOnElement(Element element) { |  207   void unhandledExceptionOnElement(Element element) { | 
 |  208     if (hasCrashed) return; | 
 |  209     hasCrashed = true; | 
|  206     reportDiagnostic(spanFromElement(element), |  210     reportDiagnostic(spanFromElement(element), | 
|  207                      MessageKind.COMPILER_CRASHED.error().toString(), |  211                      MessageKind.COMPILER_CRASHED.error().toString(), | 
|  208                      api.Diagnostic.CRASH); |  212                      api.Diagnostic.CRASH); | 
|  209     // TODO(ahe): Obtain the build ID. |  213     // TODO(ahe): Obtain the build ID. | 
|  210     var buildId = 'build number could not be determined'; |  214     var buildId = 'build number could not be determined'; | 
|  211     print(MessageKind.PLEASE_REPORT_THE_CRASH.message([buildId])); |  215     print(MessageKind.PLEASE_REPORT_THE_CRASH.message([buildId])); | 
|  212   } |  216   } | 
|  213  |  217  | 
|  214   void cancel([String reason, Node node, Token token, |  218   void cancel([String reason, Node node, Token token, | 
|  215                HInstruction instruction, Element element]) { |  219                HInstruction instruction, Element element]) { | 
| (...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  758       codegenWorld.addGeneratedCode(work, codeBuffer); |  762       codegenWorld.addGeneratedCode(work, codeBuffer); | 
|  759       return codeBuffer.toString(); |  763       return codeBuffer.toString(); | 
|  760     } |  764     } | 
|  761   } |  765   } | 
|  762  |  766  | 
|  763   void registerInstantiatedClass(ClassElement cls) { |  767   void registerInstantiatedClass(ClassElement cls) { | 
|  764     enqueuer.resolution.registerInstantiatedClass(cls); |  768     enqueuer.resolution.registerInstantiatedClass(cls); | 
|  765     enqueuer.codegen.registerInstantiatedClass(cls); |  769     enqueuer.codegen.registerInstantiatedClass(cls); | 
|  766   } |  770   } | 
|  767  |  771  | 
|  768   void resolveClass(ClassElement element) { |  | 
|  769     withCurrentElement(element, () => resolver.resolveClass(element)); |  | 
|  770   } |  | 
|  771  |  | 
|  772   Type resolveTypeAnnotation(Element element, TypeAnnotation annotation) { |  772   Type resolveTypeAnnotation(Element element, TypeAnnotation annotation) { | 
|  773     return resolver.resolveTypeAnnotation(element, annotation); |  773     return resolver.resolveTypeAnnotation(element, annotation); | 
|  774   } |  774   } | 
|  775  |  775  | 
|  776   FunctionSignature resolveSignature(FunctionElement element) { |  776   FunctionSignature resolveSignature(FunctionElement element) { | 
|  777     return withCurrentElement(element, |  777     return withCurrentElement(element, | 
|  778                               () => resolver.resolveSignature(element)); |  778                               () => resolver.resolveSignature(element)); | 
|  779   } |  779   } | 
|  780  |  780  | 
|  781   FunctionSignature resolveFunctionExpression(Element element, |  781   FunctionSignature resolveFunctionExpression(Element element, | 
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  948     final endOffset = end.charOffset + end.slowCharCount; |  948     final endOffset = end.charOffset + end.slowCharCount; | 
|  949  |  949  | 
|  950     // [begin] and [end] might be the same for the same empty token. This |  950     // [begin] and [end] might be the same for the same empty token. This | 
|  951     // happens for instance when scanning '$$'. |  951     // happens for instance when scanning '$$'. | 
|  952     assert(endOffset >= beginOffset); |  952     assert(endOffset >= beginOffset); | 
|  953     return f(beginOffset, endOffset); |  953     return f(beginOffset, endOffset); | 
|  954   } |  954   } | 
|  955  |  955  | 
|  956   String toString() => 'SourceSpan($uri, $begin, $end)'; |  956   String toString() => 'SourceSpan($uri, $begin, $end)'; | 
|  957 } |  957 } | 
| OLD | NEW |