Chromium Code Reviews| Index: pkg/compiler/lib/src/js_backend/backend.dart |
| diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart |
| index 3c29d53801701a35b290d5757e094517f2039ae5..e3e45079553457bb6c3b9b3113c7a548cb572e9f 100644 |
| --- a/pkg/compiler/lib/src/js_backend/backend.dart |
| +++ b/pkg/compiler/lib/src/js_backend/backend.dart |
| @@ -511,6 +511,8 @@ class JavaScriptBackend extends Backend { |
| final BackendHelpers helpers; |
| final BackendImpacts impacts; |
| + JSFrontendAccess _frontend; |
| + |
| JavaScriptBackend(Compiler compiler, |
| {bool generateSourceMap: true, |
| bool useStartupEmitter: false, |
| @@ -545,6 +547,7 @@ class JavaScriptBackend extends Backend { |
| ? new CpsFunctionCompiler(compiler, this, sourceInformationStrategy) |
| : new SsaFunctionCompiler(this, sourceInformationStrategy); |
| serialization = new JavaScriptBackendSerialization(this); |
| + _frontend = new JSFrontendAccess(compiler); |
|
Siggi Cherem (dart-lang)
2016/04/15 15:42:14
seems it should be possible to make this an initia
Johnni Winther
2016/04/18 08:05:43
Done.
|
| } |
| ConstantSystem get constantSystem => constants.constantSystem; |
| @@ -2473,6 +2476,35 @@ class JavaScriptBackend extends Backend { |
| supportDumpInfo: supportDumpInfo, |
| supportSerialization: supportSerialization); |
| } |
| + |
| + @override |
| + Frontend get frontend => _frontend; |
| +} |
| + |
| +class JSFrontendAccess implements Frontend { |
| + final Compiler compiler; |
| + |
| + JSFrontendAccess(this.compiler); |
| + |
| + Resolution get resolution => compiler.resolution; |
| + |
| + @override |
| + ResolutionImpact getResolutionImpact(Element element) { |
| + return resolution.getResolutionImpact(element); |
| + } |
| + |
| + @override |
| + ResolvedAst getResolvedAst(Element element) { |
| + if (element is SynthesizedCallMethodElementX) { |
| + return element.resolvedAst; |
| + } else if (element is ConstructorBodyElementX) { |
| + return element.resolvedAst; |
| + } else { |
| + assert(invariant(element, resolution.hasResolvedAst(element.declaration), |
| + message: 'No ResolvedAst for $element')); |
| + return resolution.getResolvedAst(element.declaration); |
| + } |
| + } |
| } |
| /// Handling of special annotations for tests. |