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

Side by Side Diff: runtime/vm/kernel_binary_flowgraph.cc

Issue 2987143002: Fix parsing of ClosureCreation kernel nodes in VM. (Closed)
Patch Set: Cosmetic fixes. Created 3 years, 4 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 unified diff | Download patch
« no previous file with comments | « pkg/kernel/test/closures/closures.status ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/kernel_binary_flowgraph.h" 5 #include "vm/kernel_binary_flowgraph.h"
6 6
7 #include "vm/compiler.h" 7 #include "vm/compiler.h"
8 #include "vm/longjump.h" 8 #include "vm/longjump.h"
9 #include "vm/object_store.h" 9 #include "vm/object_store.h"
10 10
(...skipping 678 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 VisitExpression(); // read vector expression. 689 VisitExpression(); // read vector expression.
690 builder_->ReadUInt(); // read index. 690 builder_->ReadUInt(); // read index.
691 VisitExpression(); // read value. 691 VisitExpression(); // read value.
692 return; 692 return;
693 case kVectorCopy: 693 case kVectorCopy:
694 VisitExpression(); // read vector expression. 694 VisitExpression(); // read vector expression.
695 return; 695 return;
696 case kClosureCreation: 696 case kClosureCreation:
697 builder_->SkipCanonicalNameReference(); // read function reference. 697 builder_->SkipCanonicalNameReference(); // read function reference.
698 VisitExpression(); // read context vector. 698 VisitExpression(); // read context vector.
699 VisitDartType(); // read function type of the closure. 699 VisitDartType(); // read function type of the closure.
700 builder_->SkipListOfDartTypes(); // read type arguments.
700 return; 701 return;
701 default: 702 default:
702 UNREACHABLE(); 703 UNREACHABLE();
703 } 704 }
704 } 705 }
705 706
706 void StreamingScopeBuilder::VisitStatement() { 707 void StreamingScopeBuilder::VisitStatement() {
707 Tag tag = builder_->ReadTag(); // read tag. 708 Tag tag = builder_->ReadTag(); // read tag.
708 switch (tag) { 709 switch (tag) {
709 case kInvalidStatement: 710 case kInvalidStatement:
(...skipping 3296 matching lines...) Expand 10 before | Expand all | Expand 10 after
4006 ReadUInt(); // read index. 4007 ReadUInt(); // read index.
4007 SkipExpression(); // read value. 4008 SkipExpression(); // read value.
4008 return; 4009 return;
4009 case kVectorCopy: 4010 case kVectorCopy:
4010 SkipExpression(); // read vector expression. 4011 SkipExpression(); // read vector expression.
4011 return; 4012 return;
4012 case kClosureCreation: 4013 case kClosureCreation:
4013 SkipCanonicalNameReference(); // read top-level function reference. 4014 SkipCanonicalNameReference(); // read top-level function reference.
4014 SkipExpression(); // read context vector. 4015 SkipExpression(); // read context vector.
4015 SkipDartType(); // read function type. 4016 SkipDartType(); // read function type.
4017 SkipListOfDartTypes(); // read type arguments.
4016 return; 4018 return;
4017 case kBigIntLiteral: 4019 case kBigIntLiteral:
4018 SkipStringReference(); // read string reference. 4020 SkipStringReference(); // read string reference.
4019 return; 4021 return;
4020 case kStringLiteral: 4022 case kStringLiteral:
4021 SkipStringReference(); // read string reference. 4023 SkipStringReference(); // read string reference.
4022 return; 4024 return;
4023 case kSpecialIntLiteral: 4025 case kSpecialIntLiteral:
4024 return; 4026 return;
4025 case kNegativeIntLiteral: 4027 case kNegativeIntLiteral:
(...skipping 1881 matching lines...) Expand 10 before | Expand all | Expand 10 after
5907 StoreInstanceField(TokenPosition::kNoSource, Closure::function_offset()); 5909 StoreInstanceField(TokenPosition::kNoSource, Closure::function_offset());
5908 5910
5909 instructions += LoadLocal(closure); 5911 instructions += LoadLocal(closure);
5910 instructions += LoadLocal(context); 5912 instructions += LoadLocal(context);
5911 instructions += 5913 instructions +=
5912 StoreInstanceField(TokenPosition::kNoSource, Closure::context_offset()); 5914 StoreInstanceField(TokenPosition::kNoSource, Closure::context_offset());
5913 5915
5914 instructions += Drop(); 5916 instructions += Drop();
5915 5917
5916 SkipDartType(); // skip function type of the closure. 5918 SkipDartType(); // skip function type of the closure.
5919 SkipListOfDartTypes(); // skip list of type arguments.
5917 5920
5918 return instructions; 5921 return instructions;
5919 } 5922 }
5920 5923
5921 Fragment StreamingFlowGraphBuilder::BuildInvalidStatement() { 5924 Fragment StreamingFlowGraphBuilder::BuildInvalidStatement() {
5922 H.ReportError("Invalid statements not implemented yet!"); 5925 H.ReportError("Invalid statements not implemented yet!");
5923 return Fragment(); 5926 return Fragment();
5924 } 5927 }
5925 5928
5926 Fragment StreamingFlowGraphBuilder::BuildExpressionStatement() { 5929 Fragment StreamingFlowGraphBuilder::BuildExpressionStatement() {
(...skipping 1354 matching lines...) Expand 10 before | Expand all | Expand 10 after
7281 } 7284 }
7282 } 7285 }
7283 7286
7284 return Array::Handle(Array::null()); 7287 return Array::Handle(Array::null());
7285 } 7288 }
7286 7289
7287 } // namespace kernel 7290 } // namespace kernel
7288 } // namespace dart 7291 } // namespace dart
7289 7292
7290 #endif // !defined(DART_PRECOMPILED_RUNTIME) 7293 #endif // !defined(DART_PRECOMPILED_RUNTIME)
OLDNEW
« no previous file with comments | « pkg/kernel/test/closures/closures.status ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698