Index: dart/frog/leg/emitter.dart |
diff --git a/dart/frog/leg/emitter.dart b/dart/frog/leg/emitter.dart |
index 0a057355f354104fdb30d5954b8b02904817f3b3..d5cd08e598591232f6374dd77ff3aee5eec28b41 100644 |
--- a/dart/frog/leg/emitter.dart |
+++ b/dart/frog/leg/emitter.dart |
@@ -653,9 +653,9 @@ function(child, parent) { |
mainEnsureGetter = "$mainAccess.$invocationName = $mainAccess"; |
} |
- // TODO(ngeoffray): These globals are currently required by the isolate |
- // library, but since leg already generates code on an Isolate object, they |
- // are not really needed. We should remove them once Leg replaces Frog. |
+ // TODO(ngeoffray): These globals are currently required by the isolate |
+ // library, but since leg already generates code on an Isolate object, they |
+ // are not really needed. We should remove them once Leg replaces Frog. |
return """ |
var \$globalThis = $currentIsolate; |
var \$globalState; |
@@ -673,6 +673,18 @@ $mainEnsureGetter |
${namer.isolateAccess(isolateMain)}($mainAccess);"""; |
} |
+ emitMain(StringBuffer buffer) { |
+ if (compiler.isMockCompilation) return; |
+ Element main = compiler.mainApp.find(Compiler.MAIN); |
+ if (compiler.isolateLibrary != null) { |
+ Element isolateMain = |
+ compiler.isolateLibrary.find(Compiler.START_ROOT_ISOLATE); |
+ buffer.add(buildIsolateSetup(main, isolateMain)); |
+ } else { |
+ buffer.add('${namer.isolateAccess(main)}();\n'); |
+ } |
+ } |
+ |
String assembleProgram() { |
measure(() { |
StringBuffer buffer = new StringBuffer(); |
@@ -686,14 +698,7 @@ ${namer.isolateAccess(isolateMain)}($mainAccess);"""; |
emitStaticFinalFieldInitializations(buffer); |
nativeEmitter.emitDynamicDispatchMetadata(buffer); |
buffer.add('var ${namer.CURRENT_ISOLATE} = new ${namer.ISOLATE}();\n'); |
- Element main = compiler.mainApp.find(Compiler.MAIN); |
- if (compiler.isolateLibrary != null) { |
- Element isolateMain = |
- compiler.isolateLibrary.find(Compiler.START_ROOT_ISOLATE); |
- buffer.add(buildIsolateSetup(main, isolateMain)); |
- } else { |
- buffer.add('${namer.isolateAccess(main)}();\n'); |
- } |
+ emitMain(buffer); |
compiler.assembledCode = buffer.toString(); |
}); |
return compiler.assembledCode; |