Chromium Code Reviews| Index: pkg/compiler/lib/src/js_emitter/main_call_stub_generator.dart |
| diff --git a/pkg/compiler/lib/src/js_emitter/main_call_stub_generator.dart b/pkg/compiler/lib/src/js_emitter/main_call_stub_generator.dart |
| index 78a9515acbe11b409f1e4a8df816396f123a1f5b..358602690cf24547e476e2fdc91d66932de378ff 100644 |
| --- a/pkg/compiler/lib/src/js_emitter/main_call_stub_generator.dart |
| +++ b/pkg/compiler/lib/src/js_emitter/main_call_stub_generator.dart |
| @@ -6,8 +6,7 @@ library dart2js.js_emitter.main_call_stub_generator; |
| import 'package:js_runtime/shared/embedded_names.dart' as embeddedNames; |
| -import '../compiler.dart' show Compiler; |
|
Siggi Cherem (dart-lang)
2017/01/19 16:49:17
yay!
|
| -import '../elements/elements.dart' show Element; |
| +import '../elements/entities.dart'; |
| import '../js/js.dart' as jsAst; |
| import '../js/js.dart' show js; |
| import '../js_backend/backend_helpers.dart' show BackendHelpers; |
| @@ -16,18 +15,19 @@ import '../js_backend/js_backend.dart' show JavaScriptBackend; |
| import 'code_emitter_task.dart' show CodeEmitterTask; |
| class MainCallStubGenerator { |
| - final Compiler compiler; |
| final JavaScriptBackend backend; |
| final CodeEmitterTask emitterTask; |
| + final bool hasIncrementalSupport; |
| - MainCallStubGenerator(this.compiler, this.backend, this.emitterTask); |
| + MainCallStubGenerator(this.backend, this.emitterTask, |
| + {this.hasIncrementalSupport: false}); |
| BackendHelpers get helpers => backend.helpers; |
| /// Returns the code equivalent to: |
| /// `function(args) { $.startRootIsolate(X.main$closure(), args); }` |
| jsAst.Expression _buildIsolateSetupClosure( |
| - Element appMain, Element isolateMain) { |
| + FunctionEntity appMain, FunctionEntity isolateMain) { |
| jsAst.Expression mainAccess = |
| emitterTask.isolateStaticClosureAccess(appMain); |
| // Since we pass the closurized version of the main method to |
| @@ -36,14 +36,12 @@ class MainCallStubGenerator { |
| [emitterTask.staticFunctionAccess(isolateMain), mainAccess]); |
| } |
| - jsAst.Statement generateInvokeMain() { |
| - Element main = compiler.mainFunction; |
| + jsAst.Statement generateInvokeMain(FunctionEntity main) { |
| jsAst.Expression mainCallClosure = null; |
| if (backend.hasIsolateSupport) { |
| - Element isolateMain = |
| - helpers.isolateHelperLibrary.find(BackendHelpers.START_ROOT_ISOLATE); |
| + FunctionEntity isolateMain = helpers.startRootIsolate; |
| mainCallClosure = _buildIsolateSetupClosure(main, isolateMain); |
| - } else if (compiler.options.hasIncrementalSupport) { |
| + } else if (hasIncrementalSupport) { |
| mainCallClosure = js( |
| 'function() { return #(); }', emitterTask.staticFunctionAccess(main)); |
| } else { |