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

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

Issue 910313002: Rename IsConstructor to IsGenerativeConstructor. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 10 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
« no previous file with comments | « runtime/vm/object.h ('k') | runtime/vm/parser.cc » ('j') | 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) 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/object.h" 5 #include "vm/object.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/assembler.h" 9 #include "vm/assembler.h"
10 #include "vm/cpu.h" 10 #include "vm/cpu.h"
(...skipping 2703 matching lines...) Expand 10 before | Expand all | Expand 10 after
2714 Script::Handle(patch.script()), 2714 Script::Handle(patch.script()),
2715 func.token_pos(), 2715 func.token_pos(),
2716 Report::kError, 2716 Report::kError,
2717 Heap::kNew, 2717 Heap::kNew,
2718 "signature mismatch: '%s'", member_name.ToCString()); 2718 "signature mismatch: '%s'", member_name.ToCString());
2719 return false; 2719 return false;
2720 } 2720 }
2721 } 2721 }
2722 for (intptr_t i = 0; i < patch_len; i++) { 2722 for (intptr_t i = 0; i < patch_len; i++) {
2723 func ^= patch_list.At(i); 2723 func ^= patch_list.At(i);
2724 if (func.IsConstructor() || func.IsFactory()) { 2724 if (func.IsGenerativeConstructor() || func.IsFactory()) {
2725 // Do not preserve the original implicit constructor, if any. 2725 // Do not preserve the original implicit constructor, if any.
2726 orig_implicit_ctor = Function::null(); 2726 orig_implicit_ctor = Function::null();
2727 } 2727 }
2728 func.set_owner(patch_class); 2728 func.set_owner(patch_class);
2729 new_functions.Add(func); 2729 new_functions.Add(func);
2730 } 2730 }
2731 if (!orig_implicit_ctor.IsNull()) { 2731 if (!orig_implicit_ctor.IsNull()) {
2732 // Preserve the original implicit constructor. 2732 // Preserve the original implicit constructor.
2733 new_functions.Add(orig_implicit_ctor); 2733 new_functions.Add(orig_implicit_ctor);
2734 } 2734 }
(...skipping 1098 matching lines...) Expand 10 before | Expand all | Expand 10 after
3833 RawFunction* Class::CheckFunctionType(const Function& func, MemberKind kind) { 3833 RawFunction* Class::CheckFunctionType(const Function& func, MemberKind kind) {
3834 if (kind == kInstance) { 3834 if (kind == kInstance) {
3835 if (func.IsDynamicFunction()) { 3835 if (func.IsDynamicFunction()) {
3836 return func.raw(); 3836 return func.raw();
3837 } 3837 }
3838 } else if (kind == kStatic) { 3838 } else if (kind == kStatic) {
3839 if (func.IsStaticFunction()) { 3839 if (func.IsStaticFunction()) {
3840 return func.raw(); 3840 return func.raw();
3841 } 3841 }
3842 } else if (kind == kConstructor) { 3842 } else if (kind == kConstructor) {
3843 if (func.IsConstructor()) { 3843 if (func.IsGenerativeConstructor()) {
3844 ASSERT(!func.is_static()); 3844 ASSERT(!func.is_static());
3845 return func.raw(); 3845 return func.raw();
3846 } 3846 }
3847 } else if (kind == kFactory) { 3847 } else if (kind == kFactory) {
3848 if (func.IsFactory()) { 3848 if (func.IsFactory()) {
3849 ASSERT(func.is_static()); 3849 ASSERT(func.is_static());
3850 return func.raw(); 3850 return func.raw();
3851 } 3851 }
3852 } else if (kind == kAny) { 3852 } else if (kind == kAny) {
3853 return func.raw(); 3853 return func.raw();
(...skipping 1740 matching lines...) Expand 10 before | Expand all | Expand 10 after
5594 return num_fixed_parameters() + NumOptionalParameters(); 5594 return num_fixed_parameters() + NumOptionalParameters();
5595 } 5595 }
5596 5596
5597 5597
5598 intptr_t Function::NumImplicitParameters() const { 5598 intptr_t Function::NumImplicitParameters() const {
5599 if (kind() == RawFunction::kConstructor) { 5599 if (kind() == RawFunction::kConstructor) {
5600 if (is_static()) { 5600 if (is_static()) {
5601 ASSERT(IsFactory()); 5601 ASSERT(IsFactory());
5602 return 1; // Type arguments. 5602 return 1; // Type arguments.
5603 } else { 5603 } else {
5604 ASSERT(IsConstructor()); 5604 ASSERT(IsGenerativeConstructor());
5605 return 2; // Instance, phase. 5605 return 2; // Instance, phase.
5606 } 5606 }
5607 } 5607 }
5608 if ((kind() == RawFunction::kClosureFunction) || 5608 if ((kind() == RawFunction::kClosureFunction) ||
5609 (kind() == RawFunction::kSignatureFunction)) { 5609 (kind() == RawFunction::kSignatureFunction)) {
5610 return 1; // Closure object. 5610 return 1; // Closure object.
5611 } 5611 }
5612 if (!is_static()) { 5612 if (!is_static()) {
5613 // Closure functions defined inside instance (i.e. non-static) functions are 5613 // Closure functions defined inside instance (i.e. non-static) functions are
5614 // marked as non-static, but they do not have a receiver. 5614 // marked as non-static, but they do not have a receiver.
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
6056 } 6056 }
6057 } 6057 }
6058 return true; 6058 return true;
6059 } 6059 }
6060 6060
6061 6061
6062 // The compiler generates an implicit constructor if a class definition 6062 // The compiler generates an implicit constructor if a class definition
6063 // does not contain an explicit constructor or factory. The implicit 6063 // does not contain an explicit constructor or factory. The implicit
6064 // constructor has the same token position as the owner class. 6064 // constructor has the same token position as the owner class.
6065 bool Function::IsImplicitConstructor() const { 6065 bool Function::IsImplicitConstructor() const {
6066 return IsConstructor() && (token_pos() == end_token_pos()); 6066 return IsGenerativeConstructor() && (token_pos() == end_token_pos());
6067 } 6067 }
6068 6068
6069 6069
6070 bool Function::IsImplicitClosureFunction() const { 6070 bool Function::IsImplicitClosureFunction() const {
6071 if (!IsClosureFunction()) { 6071 if (!IsClosureFunction()) {
6072 return false; 6072 return false;
6073 } 6073 }
6074 const Function& parent = Function::Handle(parent_function()); 6074 const Function& parent = Function::Handle(parent_function());
6075 return (parent.implicit_closure_function() == raw()); 6075 return (parent.implicit_closure_function() == raw());
6076 } 6076 }
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
6132 result.SetInstructions(Code::Handle(stub_code->LazyCompile_entry()->code())); 6132 result.SetInstructions(Code::Handle(stub_code->LazyCompile_entry()->code()));
6133 if (kind == RawFunction::kClosureFunction) { 6133 if (kind == RawFunction::kClosureFunction) {
6134 const ClosureData& data = ClosureData::Handle(ClosureData::New()); 6134 const ClosureData& data = ClosureData::Handle(ClosureData::New());
6135 result.set_data(data); 6135 result.set_data(data);
6136 } 6136 }
6137 return result.raw(); 6137 return result.raw();
6138 } 6138 }
6139 6139
6140 6140
6141 RawFunction* Function::Clone(const Class& new_owner) const { 6141 RawFunction* Function::Clone(const Class& new_owner) const {
6142 ASSERT(!IsConstructor()); 6142 ASSERT(!IsGenerativeConstructor());
6143 Function& clone = Function::Handle(); 6143 Function& clone = Function::Handle();
6144 clone ^= Object::Clone(*this, Heap::kOld); 6144 clone ^= Object::Clone(*this, Heap::kOld);
6145 const Class& origin = Class::Handle(this->origin()); 6145 const Class& origin = Class::Handle(this->origin());
6146 const PatchClass& clone_owner = 6146 const PatchClass& clone_owner =
6147 PatchClass::Handle(PatchClass::New(new_owner, origin)); 6147 PatchClass::Handle(PatchClass::New(new_owner, origin));
6148 clone.set_owner(clone_owner); 6148 clone.set_owner(clone_owner);
6149 clone.ClearCode(); 6149 clone.ClearCode();
6150 clone.set_usage_counter(0); 6150 clone.set_usage_counter(0);
6151 clone.set_deoptimization_counter(0); 6151 clone.set_deoptimization_counter(0);
6152 clone.set_regexp_cid(kIllegalCid); 6152 clone.set_regexp_cid(kIllegalCid);
(...skipping 14463 matching lines...) Expand 10 before | Expand all | Expand 10 after
20616 return tag_label.ToCString(); 20616 return tag_label.ToCString();
20617 } 20617 }
20618 20618
20619 20619
20620 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { 20620 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const {
20621 Instance::PrintJSONImpl(stream, ref); 20621 Instance::PrintJSONImpl(stream, ref);
20622 } 20622 }
20623 20623
20624 20624
20625 } // namespace dart 20625 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/object.h ('k') | runtime/vm/parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698