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

Unified Diff: sdk/lib/_internal/compiler/implementation/js_emitter/new_emitter/model_emitter.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/new_emitter/model_emitter.dart
diff --git a/sdk/lib/_internal/compiler/implementation/js_emitter/new_emitter/model_emitter.dart b/sdk/lib/_internal/compiler/implementation/js_emitter/new_emitter/model_emitter.dart
index 581f77e4ae94fd8b36ec2cbe69f8dd76784bd2bc..abeb4904012157b1e89f214fd2f73df929ebbbc9 100644
--- a/sdk/lib/_internal/compiler/implementation/js_emitter/new_emitter/model_emitter.dart
+++ b/sdk/lib/_internal/compiler/implementation/js_emitter/new_emitter/model_emitter.dart
@@ -73,6 +73,7 @@ class ModelEmitter {
emitHolders(unit.holders),
emitEmbeddedGlobals(loadMap),
emitConstants(unit.constants),
+ emitStaticNonFinalFields(unit.staticNonFinalFields),
unit.main,
program]);
}
@@ -192,6 +193,14 @@ class ModelEmitter {
return new js.Block(statements.toList());
}
+ js.Block emitStaticNonFinalFields(List<StaticField> fields) {
+ Iterable<js.Statement> statements = fields.map((StaticField field) {
+ return js.js.statement("#.# = #;",
+ [field.holder.name, field.name, field.code]);
+ });
+ return new js.Block(statements.toList());
+ }
+
js.Expression emitLibrary(Library library) {
Iterable staticDescriptors = library.statics.expand((e) =>
[ js.string(e.name), js.number(e.holder.index), emitStaticMethod(e) ]);
@@ -317,6 +326,9 @@ final String boilerplate = r"""
// Initialize constants.
#;
+ // Initialize static non-final fields constants.
kasperl 2014/10/17 06:47:04 Remove constants?
floitsch 2014/10/17 09:25:56 doh. done.
+ #;
+
var end = Date.now();
print('Setup: ' + (end - start) + ' ms.');

Powered by Google App Engine
This is Rietveld 408576698