| Index: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| index 02e78b7fce8abee9707e54097758e1a4a53054b1..79c84c48945d7d1fb723204cc103ddc6c48a02c6 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| @@ -163,6 +163,7 @@ class FunctionInlineCache {
|
|
|
| class JavaScriptBackend extends Backend {
|
| SsaBuilderTask builder;
|
| + SsaFromIrBuilderTask fromIrBuilder;
|
| SsaOptimizerTask optimizer;
|
| SsaCodeGeneratorTask generator;
|
| CodeEmitterTask emitter;
|
| @@ -419,6 +420,7 @@ class JavaScriptBackend extends Backend {
|
| super(compiler, JAVA_SCRIPT_CONSTANT_SYSTEM) {
|
| emitter = new CodeEmitterTask(compiler, namer, generateSourceMap);
|
| builder = new SsaBuilderTask(this);
|
| + fromIrBuilder = new SsaFromIrBuilderTask(compiler);
|
| optimizer = new SsaOptimizerTask(this);
|
| generator = new SsaCodeGeneratorTask(this);
|
| typeVariableHandler = new TypeVariableHandler(this);
|
| @@ -1260,8 +1262,9 @@ class JavaScriptBackend extends Backend {
|
| compiler.enqueuer.codegen.registerStaticUse(getCyclicThrowHelper());
|
| }
|
| }
|
| -
|
| - HGraph graph = builder.build(work);
|
| + HGraph graph = compiler.irBuilder.hasIr(element)
|
| + ? fromIrBuilder.build(work)
|
| + : builder.build(work);
|
| optimizer.optimize(work, graph);
|
| jsAst.Expression code = generator.generateCode(work, graph);
|
| generatedCode[element] = code;
|
|
|