Chromium Code Reviews| Index: pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart |
| diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart |
| index aa75a3e3405929dbd8143756ae73f063860e173d..777cd9877d9ac398a8b81f71f959f74eccb507a3 100644 |
| --- a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart |
| +++ b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart |
| @@ -922,6 +922,20 @@ class OldEmitter implements Emitter { |
| output.add(N); |
| } |
| + void emitFunctionThatReturnsNull(CodeOutput output) { |
| + output.addBuffer( |
| + jsAst.prettyPrint( |
| + js.statement('#.# = function() {}', |
| + [backend.namer.isolateName, |
| + backend.rti.getFunctionThatReturnsNullName]), |
| + compiler, monitor: compiler.dumpInfoTask)); |
| + } |
| + |
| + jsAst.Expression generateFunctionThatReturnsNull() { |
|
karlklose
2015/01/20 10:37:32
This generates code to access the function, not th
|
| + return js("#.#", [backend.namer.isolateName, |
| + backend.rti.getFunctionThatReturnsNullName]); |
| + } |
| + |
| /// Returns the code equivalent to: |
| /// `function(args) { $.startRootIsolate(X.main$closure(), args); }` |
| jsAst.Expression buildIsolateSetupClosure(Element appMain, |
| @@ -1459,6 +1473,8 @@ class OldEmitter implements Emitter { |
| mainOutput.add('init()$N$n'); |
| mainOutput.add('$isolateProperties$_=$_$isolatePropertiesName$N'); |
| + emitFunctionThatReturnsNull(mainOutput); |
| + |
| emitStaticFunctions(task.outputStaticLists[mainOutputUnit]); |
| List<ClassElement> classes = task.outputClassLists[mainOutputUnit]; |