Chromium Code Reviews
DescriptionFix evaluation field initialization order for forwarding constructors.
Intestingly, the VM, dart2js/SSA and dart2js/CPS all fail the new test
in three different ways.
This CL fixed the SSA and CPS backends, and leaves a status line for
the VM.
When a constructor A redirects to B, it is B that should evaluate
declaration-site initializers (unless B also redirects).
Thus, this should happen after the arguments to B have been computed.
In SSA: Fields were initialized at A instead of B
(i.e. before redirect).
In CPS: Fields were initialized at both places, just horrible.
In VM: There seems to be a problem with redirecting constructors
called using super().
VM bug report: https://code.google.com/p/dart/issues/detail?id=23488
BUG=
R=floitsch@google.com
Committed: https://github.com/dart-lang/sdk/commit/036f50d6aa4d19d422be49780eb60c6fb9c4f676
Patch Set 1 #
Total comments: 2
Patch Set 2 : Add bug number in status file #Patch Set 3 : Bugfix: use correct scope when evaluating constructor argument #Patch Set 4 : Status #
Messages
Total messages: 7 (1 generated)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||