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

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

Issue 23482004: Evaluates arguments before throwing a NoSuchMethodError in constructor (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 3 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 | 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 #ifndef VM_PARSER_H_ 5 #ifndef VM_PARSER_H_
6 #define VM_PARSER_H_ 6 #define VM_PARSER_H_
7 7
8 #include "include/dart_api.h" 8 #include "include/dart_api.h"
9 9
10 #include "lib/invocation_mirror.h" 10 #include "lib/invocation_mirror.h"
(...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 SequenceNode* MakeImplicitConstructor(const Function& func); 629 SequenceNode* MakeImplicitConstructor(const Function& func);
630 AstNode* MakeStaticCall(const String& cls_name, 630 AstNode* MakeStaticCall(const String& cls_name,
631 const String& func_name, 631 const String& func_name,
632 ArgumentListNode* arguments); 632 ArgumentListNode* arguments);
633 String& Interpolate(const GrowableArray<AstNode*>& values); 633 String& Interpolate(const GrowableArray<AstNode*>& values);
634 AstNode* MakeAssertCall(intptr_t begin, intptr_t end); 634 AstNode* MakeAssertCall(intptr_t begin, intptr_t end);
635 AstNode* ThrowTypeError(intptr_t type_pos, const AbstractType& type); 635 AstNode* ThrowTypeError(intptr_t type_pos, const AbstractType& type);
636 AstNode* ThrowNoSuchMethodError(intptr_t call_pos, 636 AstNode* ThrowNoSuchMethodError(intptr_t call_pos,
637 const Class& cls, 637 const Class& cls,
638 const String& function_name, 638 const String& function_name,
639 ArgumentListNode* actuals,
regis 2013/08/28 21:10:54 function_arguments
zra 2013/08/28 22:47:00 Done.
640 InvocationMirror::Call call,
641 InvocationMirror::Type type);
642 AstNode* ThrowNoSuchMethodError(intptr_t call_pos,
643 const Class& cls,
644 const String& function_name,
639 InvocationMirror::Call call, 645 InvocationMirror::Call call,
640 InvocationMirror::Type type); 646 InvocationMirror::Type type) {
647 return ThrowNoSuchMethodError(
648 call_pos, cls, function_name, NULL, call, type);
649 }
regis 2013/08/28 21:10:54 No overriding, please.
regis 2013/08/28 21:49:39 As Srdjan rightfully pointed out, I meant no overl
zra 2013/08/28 22:47:00 Done.
641 650
642 void CheckOperatorArity(const MemberDesc& member); 651 void CheckOperatorArity(const MemberDesc& member);
643 652
644 void EnsureExpressionTemp(); 653 void EnsureExpressionTemp();
645 void EnsureSavedCurrentContext(); 654 void EnsureSavedCurrentContext();
646 AstNode* CreateAssignmentNode(AstNode* original, 655 AstNode* CreateAssignmentNode(AstNode* original,
647 AstNode* rhs, 656 AstNode* rhs,
648 const String* left_ident, 657 const String* left_ident,
649 intptr_t left_pos); 658 intptr_t left_pos);
650 AstNode* InsertClosureCallNodes(AstNode* condition); 659 AstNode* InsertClosureCallNodes(AstNode* condition);
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 intptr_t last_used_try_index_; 717 intptr_t last_used_try_index_;
709 718
710 bool unregister_pending_function_; 719 bool unregister_pending_function_;
711 720
712 DISALLOW_COPY_AND_ASSIGN(Parser); 721 DISALLOW_COPY_AND_ASSIGN(Parser);
713 }; 722 };
714 723
715 } // namespace dart 724 } // namespace dart
716 725
717 #endif // VM_PARSER_H_ 726 #endif // VM_PARSER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698