Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1346)

Unified Diff: lib/src/codegen/js_codegen.dart

Issue 1141013002: Fixes #179 -- compile error if editing files during server mode (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/src/codegen/dart_codegen.dart ('k') | lib/src/codegen/reify_coercions.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/codegen/js_codegen.dart
diff --git a/lib/src/codegen/js_codegen.dart b/lib/src/codegen/js_codegen.dart
index a898d076b759fc01f0655332b630bb3c75ce18d6..8af06b9dfb02481a6e62f779bc649adf98c9852c 100644
--- a/lib/src/codegen/js_codegen.dart
+++ b/lib/src/codegen/js_codegen.dart
@@ -23,6 +23,7 @@ import 'package:dev_compiler/src/codegen/reify_coercions.dart'
import 'package:dev_compiler/src/js/js_ast.dart' as JS;
import 'package:dev_compiler/src/js/js_ast.dart' show js;
+import 'package:dev_compiler/devc.dart' show AbstractCompiler;
import 'package:dev_compiler/src/checker/rules.dart';
import 'package:dev_compiler/src/info.dart';
import 'package:dev_compiler/src/options.dart';
@@ -49,6 +50,7 @@ const DCALL = 'dcall';
const DSEND = 'dsend';
class JSCodegenVisitor extends GeneralizingAstVisitor with ConversionVisitor {
+ final AbstractCompiler compiler;
final CompilerOptions options;
final TypeRules rules;
final LibraryInfo libraryInfo;
@@ -87,8 +89,11 @@ class JSCodegenVisitor extends GeneralizingAstVisitor with ConversionVisitor {
ModuleItemLoadOrder _loader;
- JSCodegenVisitor(this.options, this.rules, this.libraryInfo,
- this._extensionMethods, this._fieldsNeedingStorage) {
+ JSCodegenVisitor(AbstractCompiler compiler, this.libraryInfo,
+ this._extensionMethods, this._fieldsNeedingStorage)
+ : compiler = compiler,
+ options = compiler.options,
+ rules = compiler.rules {
_loader = new ModuleItemLoadOrder(_emitModuleItem);
}
@@ -99,7 +104,7 @@ class JSCodegenVisitor extends GeneralizingAstVisitor with ConversionVisitor {
String jsDefaultValue = null;
// Modify the AST to make coercions explicit.
- new CoercionReifier(library, rules, options).reify();
+ new CoercionReifier(library, compiler).reify();
var unit = library.library;
if (unit.directives.isNotEmpty) {
@@ -2386,15 +2391,12 @@ class JSCodegenVisitor extends GeneralizingAstVisitor with ConversionVisitor {
}
class JSGenerator extends CodeGenerator {
- final CompilerOptions options;
-
/// For fast lookup of extension methods, we first check the name, then do a
/// (possibly expensive) subtype test to see if it matches one of the types
/// that declares that method.
final _extensionMethods = new HashMap<String, List<InterfaceType>>();
- JSGenerator(String outDir, Uri root, TypeRules rules, this.options)
- : super(outDir, root, rules) {
+ JSGenerator(AbstractCompiler context) : super(context) {
// TODO(jacobr): determine the the set of types with extension methods from
// the annotations rather than hard coding the list once the analyzer
@@ -2417,7 +2419,7 @@ class JSGenerator extends CodeGenerator {
String generateLibrary(LibraryUnit unit, LibraryInfo info) {
var fields = findFieldsNeedingStorage(unit);
var codegen =
- new JSCodegenVisitor(options, rules, info, _extensionMethods, fields);
+ new JSCodegenVisitor(compiler, info, _extensionMethods, fields);
var module = codegen.emitLibrary(unit);
var dir = path.join(outDir, jsOutputPath(info, root));
return writeJsLibrary(module, dir, emitSourceMaps: options.emitSourceMaps);
« no previous file with comments | « lib/src/codegen/dart_codegen.dart ('k') | lib/src/codegen/reify_coercions.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698