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

Unified Diff: sdk/lib/_internal/compiler/implementation/js_emitter/model.dart

Issue 661783002: dart2js: Add support for static fields to new emitter. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 2 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
Index: sdk/lib/_internal/compiler/implementation/js_emitter/model.dart
diff --git a/sdk/lib/_internal/compiler/implementation/js_emitter/model.dart b/sdk/lib/_internal/compiler/implementation/js_emitter/model.dart
index 2a8748ea86c6156f29dd1ced34185217defe153c..691a17456ad23c0ae115928b7f410743f4f107cb 100644
--- a/sdk/lib/_internal/compiler/implementation/js_emitter/model.dart
+++ b/sdk/lib/_internal/compiler/implementation/js_emitter/model.dart
@@ -35,12 +35,15 @@ abstract class Output {
MainOutput get mainOutput;
final List<Library> libraries;
final List<Constant> constants;
+ // TODO(floitsch): should we move static fields into libraries or classes?
+ final List<StaticField> staticNonFinalFields;
/// Output file name without extension.
final String outputFileName;
Output(this.outputFileName,
this.libraries,
+ this.staticNonFinalFields,
this.constants);
}
@@ -57,9 +60,10 @@ class MainOutput extends Output {
MainOutput(String outputFileName,
this.main,
List<Library> libraries,
+ List<StaticField> staticNonFinalFields,
List<Constant> constants,
this.holders)
- : super(outputFileName, libraries, constants);
+ : super(outputFileName, libraries, staticNonFinalFields, constants);
MainOutput get mainOutput => this;
}
@@ -77,8 +81,9 @@ class DeferredOutput extends Output {
this.name,
this.mainOutput,
List<Library> libraries,
+ List<StaticField> staticNonFinalFields,
List<Constant> constants)
- : super(outputFileName, libraries, constants);
+ : super(outputFileName, libraries, staticNonFinalFields, constants);
}
class Constant {
@@ -96,6 +101,17 @@ class Library {
Library(this.uri, this.statics, this.classes);
}
+class StaticField {
+ final String name;
+ final Holder holder;
floitsch 2014/10/16 14:27:55 The holder for static fields in the "isolate" obje
kasperl 2014/10/17 06:47:04 Maybe add this as a comment in the code?
floitsch 2014/10/17 09:25:56 Done.
+ final js.Expression code;
+ final bool isFinal;
+ final bool isLazy;
+
+ StaticField(this.name, this.holder, this.code,
+ this.isFinal, this.isLazy);
+}
+
class Class {
final String name;
final Holder holder;

Powered by Google App Engine
This is Rietveld 408576698