Index: pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart |
diff --git a/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart |
index c71eaa2dc00247df3dbb8c02e35303b9b275cca0..62f5e812b3f290786aac5fcef806413bc5df465d 100644 |
--- a/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart |
+++ b/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart |
@@ -26,7 +26,11 @@ import '../../constants/values.dart'; |
import '../../deferred_load.dart' show OutputUnit; |
-import '../../diagnostics/messages.dart' show MessageKind; |
+import '../../diagnostics/diagnostic_listener.dart' show |
+ DiagnosticReporter; |
+ |
+import '../../diagnostics/messages.dart' show |
+ MessageKind; |
import '../../diagnostics/spannable.dart' show |
NO_LOCATION_SPANNABLE; |
@@ -192,6 +196,8 @@ class Emitter implements js_emitter.Emitter { |
interceptorEmitter.emitter = this; |
} |
+ DiagnosticReporter get reporter => compiler.reporter; |
+ |
List<jsAst.Node> cspPrecompiledFunctionFor(OutputUnit outputUnit) { |
return _cspPrecompiledFunctions.putIfAbsent( |
outputUnit, |
@@ -415,7 +421,7 @@ class Emitter implements js_emitter.Emitter { |
return jsAst.js.expressionTemplateFor("$functionGettersMap[#]()"); |
default: |
- compiler.internalError(NO_LOCATION_SPANNABLE, |
+ reporter.internalError(NO_LOCATION_SPANNABLE, |
"Unhandled Builtin: $builtin"); |
return null; |
} |
@@ -554,7 +560,7 @@ class Emitter implements js_emitter.Emitter { |
} else if (element.isTypedef) { |
return element.name; |
} |
- throw compiler.internalError(element, |
+ throw reporter.internalError(element, |
'Do not know how to reflect on this $element.'); |
} |
@@ -592,7 +598,7 @@ class Emitter implements js_emitter.Emitter { |
void assembleClass(Class cls, ClassBuilder enclosingBuilder, |
Fragment fragment) { |
ClassElement classElement = cls.element; |
- compiler.withCurrentElement(classElement, () { |
+ reporter.withCurrentElement(classElement, () { |
if (compiler.hasIncrementalSupport) { |
ClassBuilder cachedBuilder = |
cachedClassBuilders.putIfAbsent(classElement, () { |
@@ -645,7 +651,7 @@ class Emitter implements js_emitter.Emitter { |
// [fields] is `null`. |
if (fields != null) { |
for (Element element in fields) { |
- compiler.withCurrentElement(element, () { |
+ reporter.withCurrentElement(element, () { |
ConstantValue constant = handler.getInitialValueFor(element); |
parts.add(buildInitialization(element, constantReference(constant))); |
}); |
@@ -659,7 +665,7 @@ class Emitter implements js_emitter.Emitter { |
(OutputUnit fieldsOutputUnit, Iterable<VariableElement> fields) { |
if (fieldsOutputUnit == outputUnit) return; // Skip the main unit. |
for (Element element in fields) { |
- compiler.withCurrentElement(element, () { |
+ reporter.withCurrentElement(element, () { |
parts.add(buildInitialization(element, jsAst.number(0))); |
}); |
} |
@@ -900,8 +906,8 @@ class Emitter implements js_emitter.Emitter { |
#finishedClasses = map(); |
if (#needsLazyInitializer) { |
- // [staticName] is only provided in non-minified mode. If missing, we |
- // fall back to [fieldName]. Likewise, [prototype] is optional and |
+ // [staticName] is only provided in non-minified mode. If missing, we |
+ // fall back to [fieldName]. Likewise, [prototype] is optional and |
// defaults to the isolateProperties object. |
$lazyInitializerName = function (fieldName, getterName, lazyValue, |
staticName, prototype) { |
@@ -1332,12 +1338,12 @@ class Emitter implements js_emitter.Emitter { |
Elements.sortedByPosition(elements.where((e) => !e.isLibrary)); |
pendingStatics.forEach((element) => |
- compiler.reportInfo( |
+ reporter.reportInfo( |
element, MessageKind.GENERIC, {'text': 'Pending statics.'})); |
} |
if (pendingStatics != null && !pendingStatics.isEmpty) { |
- compiler.internalError(pendingStatics.first, |
+ reporter.internalError(pendingStatics.first, |
'Pending statics (see above).'); |
} |
} |
@@ -1812,7 +1818,7 @@ function(originalDescriptor, name, holder, isStatic, globalFunctionsAccess) { |
if (backend.requiresPreamble && |
!backend.htmlLibraryIsLoaded) { |
- compiler.reportHintMessage( |
+ reporter.reportHintMessage( |
NO_LOCATION_SPANNABLE, MessageKind.PREAMBLE); |
} |
// Return the total program size. |
@@ -1846,7 +1852,7 @@ function(originalDescriptor, name, holder, isStatic, globalFunctionsAccess) { |
} |
} |
if (owner == null) { |
- compiler.internalError(element, 'Owner is null.'); |
+ reporter.internalError(element, 'Owner is null.'); |
} |
return elementDescriptors |
.putIfAbsent(fragment, () => new Map<Element, ClassBuilder>()) |