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

Issue 759193005: Add support for fields to the new dart backend. (Closed)

Created:
6 years ago by sigurdm
Modified:
6 years ago
CC:
reviews_dartlang.org, karlklose, Johnni Winther
Visibility:
Public.

Description

Add support for fields to the new dart backend. Field initializers are represented similarly to a function with no parameters. When they are emitted in backend_ast_emitter.dart `ensureExpression` wraps the code in an immediately invoked closure if it is not on the simple form `return e;`. Ideally this should never happen, but currently happens for cases like eg. class A { static var b = 1; var a = b++; } main() { var a = new A(); print(a.a); } Gets converted to: class A { static var b = 1; var a = (() /* new backend */ { var v0; v0 = A.b; A.b = v0 + 1; return v0; } )(); } main() /* new backend */ { print(new A().a); } R=kmillikin@google.com Committed: https://code.google.com/p/dart/source/detail?r=42024

Patch Set 1 #

Patch Set 2 : Fix dart2js-cps #

Total comments: 16

Patch Set 3 : Address review comments #

Patch Set 4 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+466 lines, -177 lines) Patch
M pkg/analyzer2dart/lib/src/cps_generator.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/compiler/lib/src/cps_ir/constant_propagation.dart View 1 2 3 6 chunks +19 lines, -8 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart View 3 chunks +13 lines, -5 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart View 1 2 8 chunks +67 lines, -27 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart View 1 2 3 7 chunks +35 lines, -3 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart View 1 2 3 1 chunk +8 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart View 1 2 3 3 chunks +23 lines, -7 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/optimizers.dart View 1 2 1 chunk +7 lines, -1 line 0 comments Download
M pkg/compiler/lib/src/cps_ir/redundant_phi.dart View 1 2 3 1 chunk +11 lines, -1 line 0 comments Download
M pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart View 1 2 3 4 chunks +18 lines, -6 lines 0 comments Download
M pkg/compiler/lib/src/dart_backend/backend.dart View 3 chunks +29 lines, -28 lines 0 comments Download
M pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart View 10 chunks +65 lines, -18 lines 0 comments Download
M pkg/compiler/lib/src/dart_backend/backend_ast_nodes.dart View 2 chunks +11 lines, -1 line 0 comments Download
M pkg/compiler/lib/src/dart_backend/backend_ast_to_frontend_ast.dart View 4 chunks +39 lines, -8 lines 0 comments Download
M pkg/compiler/lib/src/dart_backend/renamer.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/compiler/lib/src/js_backend/codegen/codegen.dart View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M pkg/compiler/lib/src/js_backend/codegen/task.dart View 1 2 3 2 chunks +3 lines, -2 lines 0 comments Download
M pkg/compiler/lib/src/tracer.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/optimization/copy_propagator.dart View 4 chunks +10 lines, -13 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/optimization/logical_rewriter.dart View 1 chunk +3 lines, -5 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/optimization/loop_rewriter.dart View 1 chunk +3 lines, -5 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/optimization/optimization.dart View 1 2 1 chunk +16 lines, -1 line 0 comments Download
M pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart View 1 2 2 chunks +14 lines, -1 line 0 comments Download
M pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart View 1 2 3 6 chunks +42 lines, -26 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart View 1 2 4 chunks +20 lines, -2 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart View 2 chunks +4 lines, -4 lines 0 comments Download
M pkg/compiler/lib/src/use_unused_api.dart View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 5 (1 generated)
sigurdm
6 years ago (2014-11-26 12:48:45 UTC) #2
Kevin Millikin (Google)
LGTM with some indentation suggestions. https://codereview.chromium.org/759193005/diff/20001/pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart File pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart (right): https://codereview.chromium.org/759193005/diff/20001/pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart#newcode153 pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart:153: definitions.definitions.nodes.first; Indent. https://codereview.chromium.org/759193005/diff/20001/pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart#newcode159 pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart:159: ...
6 years ago (2014-11-26 13:31:30 UTC) #3
sigurdm
https://codereview.chromium.org/759193005/diff/20001/pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart File pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart (right): https://codereview.chromium.org/759193005/diff/20001/pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart#newcode153 pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart:153: definitions.definitions.nodes.first; On 2014/11/26 13:31:29, kmillikin wrote: > Indent. Done. ...
6 years ago (2014-11-26 14:38:44 UTC) #4
sigurdm
6 years ago (2014-11-28 08:49:10 UTC) #5
Message was sent while issue was closed.
Committed patchset #4 (id:60001) manually as 42024 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698