| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 * Generates the code for all used classes in the program. Static fields (even | 6 * Generates the code for all used classes in the program. Static fields (even |
| 7 * in classes) are ignored, since they can be treated as non-class elements. | 7 * in classes) are ignored, since they can be treated as non-class elements. |
| 8 * | 8 * |
| 9 * The code for the containing (used) methods must exist in the [:universe:]. | 9 * The code for the containing (used) methods must exist in the [:universe:]. |
| 10 */ | 10 */ |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 StringBuffer buffer, | 93 StringBuffer buffer, |
| 94 Set<ClassElement> seenClasses) { | 94 Set<ClassElement> seenClasses) { |
| 95 if (seenClasses.contains(classElement)) return; | 95 if (seenClasses.contains(classElement)) return; |
| 96 seenClasses.add(classElement); | 96 seenClasses.add(classElement); |
| 97 ClassElement superClass = classElement.superClass; | 97 ClassElement superClass = classElement.superClass; |
| 98 if (superClass !== null) { | 98 if (superClass !== null) { |
| 99 generateClass(classElement.superClass, buffer, seenClasses); | 99 generateClass(classElement.superClass, buffer, seenClasses); |
| 100 } | 100 } |
| 101 | 101 |
| 102 String className = namer.isolatePropertyAccess(classElement); | 102 String className = namer.isolatePropertyAccess(classElement); |
| 103 buffer.add('$className = function('); | 103 buffer.add('$className = function ${classElement.name}('); |
| 104 StringBuffer bodyBuffer = new StringBuffer(); | 104 StringBuffer bodyBuffer = new StringBuffer(); |
| 105 generateFieldInits(classElement, buffer, bodyBuffer); | 105 generateFieldInits(classElement, buffer, bodyBuffer); |
| 106 buffer.add(') {\n'); | 106 buffer.add(') {\n'); |
| 107 buffer.add(bodyBuffer); | 107 buffer.add(bodyBuffer); |
| 108 buffer.add('};\n'); | 108 buffer.add('};\n'); |
| 109 if (superClass !== null) { | 109 if (superClass !== null) { |
| 110 addInheritFunctionIfNecessary(buffer); | 110 addInheritFunctionIfNecessary(buffer); |
| 111 String superName = namer.isolatePropertyAccess(superClass); | 111 String superName = namer.isolatePropertyAccess(superClass); |
| 112 buffer.add('${inheritsName}($className, $superName);\n'); | 112 buffer.add('${inheritsName}($className, $superName);\n'); |
| 113 } | 113 } |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 compileIsolateStatic(buffer, | 155 compileIsolateStatic(buffer, |
| 156 compiler.universe.generatedBailoutCode, | 156 compiler.universe.generatedBailoutCode, |
| 157 namer.isolateBailoutPropertyAccess); | 157 namer.isolateBailoutPropertyAccess); |
| 158 buffer.add('var ${namer.currentIsolate} = new ${namer.isolate}();\n'); | 158 buffer.add('var ${namer.currentIsolate} = new ${namer.isolate}();\n'); |
| 159 buffer.add('${namer.currentIsolate}.main();\n'); | 159 buffer.add('${namer.currentIsolate}.main();\n'); |
| 160 compiler.assembledCode = buffer.toString(); | 160 compiler.assembledCode = buffer.toString(); |
| 161 }); | 161 }); |
| 162 return compiler.assembledCode; | 162 return compiler.assembledCode; |
| 163 } | 163 } |
| 164 } | 164 } |
| OLD | NEW |