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

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

Issue 184523002: Allocation sinking for contexts. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: added new test Created 6 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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/parser.h" 5 #include "vm/parser.h"
6 6
7 #include "lib/invocation_mirror.h" 7 #include "lib/invocation_mirror.h"
8 #include "platform/utils.h" 8 #include "platform/utils.h"
9 #include "vm/ast_transformer.h" 9 #include "vm/ast_transformer.h"
10 #include "vm/bootstrap.h" 10 #include "vm/bootstrap.h"
(...skipping 6080 matching lines...) Expand 10 before | Expand all | Expand 10 after
6091 // outermost enclosing function. 6091 // outermost enclosing function.
6092 const bool kTestOnly = false; 6092 const bool kTestOnly = false;
6093 LocalVariable* receiver = LookupReceiver(current_block_->scope, kTestOnly); 6093 LocalVariable* receiver = LookupReceiver(current_block_->scope, kTestOnly);
6094 if (receiver == NULL) { 6094 if (receiver == NULL) {
6095 ReportError(token_pos, "illegal implicit access to receiver 'this'"); 6095 ReportError(token_pos, "illegal implicit access to receiver 'this'");
6096 } 6096 }
6097 return new(I) LoadLocalNode(TokenPos(), receiver); 6097 return new(I) LoadLocalNode(TokenPos(), receiver);
6098 } 6098 }
6099 6099
6100 6100
6101 AstNode* Parser::LoadTypeArgumentsParameter(intptr_t token_pos) {
6102 // A nested function may access ':type_arguments' to use as instantiator,
6103 // referring to the implicit first parameter of the outermost enclosing
6104 // factory function.
6105 const bool kTestOnly = false;
6106 LocalVariable* param = LookupTypeArgumentsParameter(current_block_->scope,
6107 kTestOnly);
6108 ASSERT(param != NULL);
6109 return new(I) LoadLocalNode(TokenPos(), param);
6110 }
6111
6112
6113 AstNode* Parser::CallGetter(intptr_t token_pos, 6101 AstNode* Parser::CallGetter(intptr_t token_pos,
6114 AstNode* object, 6102 AstNode* object,
6115 const String& name) { 6103 const String& name) {
6116 return new(I) InstanceGetterNode(token_pos, object, name); 6104 return new(I) InstanceGetterNode(token_pos, object, name);
6117 } 6105 }
6118 6106
6119 6107
6120 // Returns ast nodes of the variable initialization. 6108 // Returns ast nodes of the variable initialization.
6121 AstNode* Parser::ParseVariableDeclaration(const AbstractType& type, 6109 AstNode* Parser::ParseVariableDeclaration(const AbstractType& type,
6122 bool is_final, 6110 bool is_final,
(...skipping 5781 matching lines...) Expand 10 before | Expand all | Expand 10 after
11904 void Parser::SkipQualIdent() { 11892 void Parser::SkipQualIdent() {
11905 ASSERT(IsIdentifier()); 11893 ASSERT(IsIdentifier());
11906 ConsumeToken(); 11894 ConsumeToken();
11907 if (CurrentToken() == Token::kPERIOD) { 11895 if (CurrentToken() == Token::kPERIOD) {
11908 ConsumeToken(); // Consume the kPERIOD token. 11896 ConsumeToken(); // Consume the kPERIOD token.
11909 ExpectIdentifier("identifier expected after '.'"); 11897 ExpectIdentifier("identifier expected after '.'");
11910 } 11898 }
11911 } 11899 }
11912 11900
11913 } // namespace dart 11901 } // namespace dart
OLDNEW
« runtime/vm/debugger.cc ('K') | « runtime/vm/parser.h ('k') | runtime/vm/raw_object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698