| Index: pkg/compiler/lib/src/js/js.dart
|
| diff --git a/pkg/compiler/lib/src/js/js.dart b/pkg/compiler/lib/src/js/js.dart
|
| index 288f45c6419dfe57151c0e593f4ad2032724f900..2625988b889f9fada97d46497782d7f9e90b88c7 100644
|
| --- a/pkg/compiler/lib/src/js/js.dart
|
| +++ b/pkg/compiler/lib/src/js/js.dart
|
| @@ -7,7 +7,7 @@ library js;
|
| import 'package:js_ast/js_ast.dart';
|
|
|
| import '../common.dart';
|
| -import '../compiler.dart' show Compiler;
|
| +import '../options.dart';
|
| import '../dump_info.dart' show DumpInfoTask;
|
| import '../io/code_output.dart' show CodeBuffer;
|
| import '../js_emitter/js_emitter.dart' show USE_LAZY_EMITTER;
|
| @@ -15,12 +15,12 @@ import 'js_source_mapping.dart';
|
|
|
| export 'package:js_ast/js_ast.dart';
|
|
|
| -String prettyPrint(Node node, Compiler compiler,
|
| +String prettyPrint(Node node, CompilerOptions compilerOptions,
|
| {bool allowVariableMinification: true,
|
| Renamer renamerForNames: JavaScriptPrintingOptions.identityRenamer}) {
|
| // TODO(johnniwinther): Do we need all the options here?
|
| JavaScriptPrintingOptions options = new JavaScriptPrintingOptions(
|
| - shouldCompressOutput: compiler.options.enableMinification,
|
| + shouldCompressOutput: compilerOptions.enableMinification,
|
| minifyLocalVariables: allowVariableMinification,
|
| preferSemicolonToNewlineInMinifiedOutput: USE_LAZY_EMITTER,
|
| renamerForNames: renamerForNames);
|
| @@ -31,25 +31,24 @@ String prettyPrint(Node node, Compiler compiler,
|
| return context.getText();
|
| }
|
|
|
| -CodeBuffer createCodeBuffer(Node node, Compiler compiler,
|
| +CodeBuffer createCodeBuffer(Node node, CompilerOptions compilerOptions,
|
| + JavaScriptSourceInformationStrategy sourceInformationStrategy,
|
| {DumpInfoTask monitor,
|
| bool allowVariableMinification: true,
|
| Renamer renamerForNames: JavaScriptPrintingOptions.identityRenamer}) {
|
| - JavaScriptSourceInformationStrategy sourceInformationFactory =
|
| - compiler.backend.sourceInformationStrategy;
|
| JavaScriptPrintingOptions options = new JavaScriptPrintingOptions(
|
| - shouldCompressOutput: compiler.options.enableMinification,
|
| + shouldCompressOutput: compilerOptions.enableMinification,
|
| minifyLocalVariables: allowVariableMinification,
|
| preferSemicolonToNewlineInMinifiedOutput: USE_LAZY_EMITTER,
|
| renamerForNames: renamerForNames);
|
| CodeBuffer outBuffer = new CodeBuffer();
|
| SourceInformationProcessor sourceInformationProcessor =
|
| - sourceInformationFactory.createProcessor(
|
| + sourceInformationStrategy.createProcessor(
|
| new SourceMapperProviderImpl(outBuffer),
|
| const SourceInformationReader());
|
| Dart2JSJavaScriptPrintingContext context =
|
| new Dart2JSJavaScriptPrintingContext(
|
| - compiler.reporter, monitor, outBuffer, sourceInformationProcessor);
|
| + monitor, outBuffer, sourceInformationProcessor);
|
| Printer printer = new Printer(options, context);
|
| printer.visit(node);
|
| sourceInformationProcessor.process(node, outBuffer);
|
| @@ -57,17 +56,16 @@ CodeBuffer createCodeBuffer(Node node, Compiler compiler,
|
| }
|
|
|
| class Dart2JSJavaScriptPrintingContext implements JavaScriptPrintingContext {
|
| - final DiagnosticReporter reporter;
|
| final DumpInfoTask monitor;
|
| final CodeBuffer outBuffer;
|
| final CodePositionListener codePositionListener;
|
|
|
| Dart2JSJavaScriptPrintingContext(
|
| - this.reporter, this.monitor, this.outBuffer, this.codePositionListener);
|
| + this.monitor, this.outBuffer, this.codePositionListener);
|
|
|
| @override
|
| void error(String message) {
|
| - reporter.internalError(NO_LOCATION_SPANNABLE, message);
|
| + throw new SpannableAssertionFailure(NO_LOCATION_SPANNABLE, message);
|
| }
|
|
|
| @override
|
| @@ -133,7 +131,7 @@ abstract class ReferenceCountedAstNode implements Node {
|
| /// for example by the lazy emitter or when generating code generators.
|
| class UnparsedNode extends DeferredString implements AstContainer {
|
| final Node tree;
|
| - final Compiler _compiler;
|
| + final CompilerOptions _compilerOptions;
|
| final bool _protectForEval;
|
| LiteralString _cachedLiteral;
|
|
|
| @@ -144,11 +142,11 @@ class UnparsedNode extends DeferredString implements AstContainer {
|
| /// When its string [value] is requested, the node pretty-prints the given
|
| /// [ast] and, if [protectForEval] is true, wraps the resulting string in
|
| /// parenthesis. The result is also escaped.
|
| - UnparsedNode(this.tree, this._compiler, this._protectForEval);
|
| + UnparsedNode(this.tree, this._compilerOptions, this._protectForEval);
|
|
|
| LiteralString get _literal {
|
| if (_cachedLiteral == null) {
|
| - String text = prettyPrint(tree, _compiler);
|
| + String text = prettyPrint(tree, _compilerOptions);
|
| if (_protectForEval) {
|
| if (tree is Fun) text = '($text)';
|
| if (tree is LiteralExpression) {
|
|
|