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

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: Address comments. 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
« no previous file with comments | « no previous file | sdk/lib/_internal/compiler/implementation/js_emitter/new_emitter/model_emitter.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..31af9406baa9d3c6617de712dcb0b39a8311640c 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,19 @@ class Library {
Library(this.uri, this.statics, this.classes);
}
+class StaticField {
+ final String name;
+ // TODO(floitsch): the holder for static fields is the isolate object. We
+ // could remove this field and use the isolate object directly.
+ final Holder holder;
+ 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;
« no previous file with comments | « no previous file | sdk/lib/_internal/compiler/implementation/js_emitter/new_emitter/model_emitter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698