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

Issue 15979010: Fix two bugs in the Dart VM's super-noSuchMethod invocation. (Closed)

Created:
7 years, 6 months ago by Florian Schneider
Modified:
7 years, 6 months ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org, regis
Visibility:
Public.

Description

Fix two bugs in the Dart VM's super-noSuchMethod invocation. 1. The result value of an expression "super.someMissingSetter = val" was incorrect in case of a noSuchMethod call. To fix this I refactored the BuildStaticNoSuchMethod function. It now no longer creates AST nodes and visits them, because the last argument may be needed saved as a result value. 2. The evaluation order of "super[e1] = e2" was wrong in case of a noSuchMethod call. BUG=dart:8917, dart:10965 TEST=tests/language/super_operator_index7_test.dart, tests/language/super_operator_index8_test.dart R=srdjan@google.com Committed: https://code.google.com/p/dart/source/detail?r=23553

Patch Set 1 #

Total comments: 6

Patch Set 2 : new version with comments addressed #

Patch Set 3 : added assertion #

Patch Set 4 : #

Patch Set 5 : improved version #

Total comments: 4

Patch Set 6 : #

Total comments: 7

Patch Set 7 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+222 lines, -212 lines) Patch
M runtime/vm/code_descriptors_test.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/compiler.h View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/compiler.cc View 1 2 3 4 5 6 8 chunks +12 lines, -13 lines 0 comments Download
M runtime/vm/flow_graph.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/flow_graph_builder.h View 1 2 3 4 4 chunks +10 lines, -4 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 2 3 4 35 chunks +108 lines, -160 lines 0 comments Download
M runtime/vm/flow_graph_inliner.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/parser.h View 1 2 3 4 4 chunks +11 lines, -5 lines 0 comments Download
M runtime/vm/parser.cc View 1 2 3 4 5 chunks +29 lines, -21 lines 0 comments Download
M runtime/vm/unit_test.cc View 1 2 3 4 1 chunk +2 lines, -3 lines 0 comments Download
M tests/language/language.status View 1 2 3 4 2 chunks +0 lines, -2 lines 0 comments Download
A tests/language/super_operator_index8_test.dart View 1 chunk +46 lines, -0 lines 0 comments Download

Messages

Total messages: 11 (0 generated)
Florian Schneider
7 years, 6 months ago (2013-05-30 14:29:24 UTC) #1
srdjan
Thanks for fixing all these issues. https://codereview.chromium.org/15979010/diff/1/runtime/vm/flow_graph_builder.cc File runtime/vm/flow_graph_builder.cc (right): https://codereview.chromium.org/15979010/diff/1/runtime/vm/flow_graph_builder.cc#newcode1845 runtime/vm/flow_graph_builder.cc:1845: bool return_definition = ...
7 years, 6 months ago (2013-05-30 17:42:30 UTC) #2
Florian Schneider
https://codereview.chromium.org/15979010/diff/1/runtime/vm/flow_graph_builder.cc File runtime/vm/flow_graph_builder.cc (right): https://codereview.chromium.org/15979010/diff/1/runtime/vm/flow_graph_builder.cc#newcode1845 runtime/vm/flow_graph_builder.cc:1845: bool return_definition = true) On 2013/05/30 17:42:30, srdjan wrote: ...
7 years, 6 months ago (2013-05-31 08:46:36 UTC) #3
Florian Schneider
https://codereview.chromium.org/15979010/diff/1/runtime/vm/flow_graph_builder.cc File runtime/vm/flow_graph_builder.cc (right): https://codereview.chromium.org/15979010/diff/1/runtime/vm/flow_graph_builder.cc#newcode3382 runtime/vm/flow_graph_builder.cc:3382: if (save_last_arg && i == method_arguments->length() - 1) { ...
7 years, 6 months ago (2013-05-31 08:51:19 UTC) #4
Florian Schneider
Adding Slava.
7 years, 6 months ago (2013-05-31 09:06:22 UTC) #5
Florian Schneider
Diff to previous patch-set: * Simplified flow graph builder to use the parser's helper( BuildNoSuchMethodArguments). ...
7 years, 6 months ago (2013-06-03 14:54:14 UTC) #6
srdjan
https://codereview.chromium.org/15979010/diff/17001/runtime/vm/compiler.cc File runtime/vm/compiler.cc (right): https://codereview.chromium.org/15979010/diff/17001/runtime/vm/compiler.cc#newcode243 runtime/vm/compiler.cc:243: static bool CompileParsedFunctionHelper(ParsedFunction* parsed_function, Why this change (from const ...
7 years, 6 months ago (2013-06-03 15:24:14 UTC) #7
Florian Schneider
https://codereview.chromium.org/15979010/diff/17001/runtime/vm/compiler.cc File runtime/vm/compiler.cc (right): https://codereview.chromium.org/15979010/diff/17001/runtime/vm/compiler.cc#newcode243 runtime/vm/compiler.cc:243: static bool CompileParsedFunctionHelper(ParsedFunction* parsed_function, On 2013/06/03 15:24:14, srdjan wrote: ...
7 years, 6 months ago (2013-06-03 15:33:48 UTC) #8
srdjan
LGTM https://codereview.chromium.org/15979010/diff/24003/runtime/vm/compiler.cc File runtime/vm/compiler.cc (right): https://codereview.chromium.org/15979010/diff/24003/runtime/vm/compiler.cc#newcode276 runtime/vm/compiler.cc:276: Code::Handle(function.unoptimized_code()); Can this fit in one line now? ...
7 years, 6 months ago (2013-06-03 16:56:15 UTC) #9
Florian Schneider
https://codereview.chromium.org/15979010/diff/24003/runtime/vm/compiler.cc File runtime/vm/compiler.cc (right): https://codereview.chromium.org/15979010/diff/24003/runtime/vm/compiler.cc#newcode276 runtime/vm/compiler.cc:276: Code::Handle(function.unoptimized_code()); On 2013/06/03 16:56:15, srdjan wrote: > Can this ...
7 years, 6 months ago (2013-06-03 17:01:36 UTC) #10
Florian Schneider
7 years, 6 months ago (2013-06-03 17:09:24 UTC) #11
Message was sent while issue was closed.
Committed patchset #7 manually as r23553 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698