| OLD | NEW |
| 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 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 693 // Allocate and initialize singleton true and false boolean objects. | 693 // Allocate and initialize singleton true and false boolean objects. |
| 694 cls = Class::New<Bool>(); | 694 cls = Class::New<Bool>(); |
| 695 isolate->object_store()->set_bool_class(cls); | 695 isolate->object_store()->set_bool_class(cls); |
| 696 *bool_true_ = Bool::New(true); | 696 *bool_true_ = Bool::New(true); |
| 697 *bool_false_ = Bool::New(false); | 697 *bool_false_ = Bool::New(false); |
| 698 | 698 |
| 699 *smi_illegal_cid_ = Smi::New(kIllegalCid); | 699 *smi_illegal_cid_ = Smi::New(kIllegalCid); |
| 700 | 700 |
| 701 String& error_str = String::Handle(); | 701 String& error_str = String::Handle(); |
| 702 error_str = String::New("SnapshotWriter Error", Heap::kOld); | 702 error_str = String::New("SnapshotWriter Error", Heap::kOld); |
| 703 *snapshot_writer_error_ = LanguageError::New(error_str, Heap::kOld); | 703 *snapshot_writer_error_ = LanguageError::New(error_str, |
| 704 LanguageError::kError, |
| 705 Heap::kOld); |
| 704 error_str = String::New("Branch offset overflow", Heap::kOld); | 706 error_str = String::New("Branch offset overflow", Heap::kOld); |
| 705 *branch_offset_error_ = LanguageError::New(error_str, Heap::kOld); | 707 *branch_offset_error_ = LanguageError::New(error_str, |
| 708 LanguageError::kBailout, |
| 709 Heap::kOld); |
| 706 | 710 |
| 707 ASSERT(!null_object_->IsSmi()); | 711 ASSERT(!null_object_->IsSmi()); |
| 708 ASSERT(!null_array_->IsSmi()); | 712 ASSERT(!null_array_->IsSmi()); |
| 709 ASSERT(null_array_->IsArray()); | 713 ASSERT(null_array_->IsArray()); |
| 710 ASSERT(!null_string_->IsSmi()); | 714 ASSERT(!null_string_->IsSmi()); |
| 711 ASSERT(null_string_->IsString()); | 715 ASSERT(null_string_->IsString()); |
| 712 ASSERT(!null_instance_->IsSmi()); | 716 ASSERT(!null_instance_->IsSmi()); |
| 713 ASSERT(null_instance_->IsInstance()); | 717 ASSERT(null_instance_->IsInstance()); |
| 714 ASSERT(!null_type_arguments_->IsSmi()); | 718 ASSERT(!null_type_arguments_->IsSmi()); |
| 715 ASSERT(null_type_arguments_->IsTypeArguments()); | 719 ASSERT(null_type_arguments_->IsTypeArguments()); |
| (...skipping 7944 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8660 | 8664 |
| 8661 void Library::AddClass(const Class& cls) const { | 8665 void Library::AddClass(const Class& cls) const { |
| 8662 const String& class_name = String::Handle(cls.Name()); | 8666 const String& class_name = String::Handle(cls.Name()); |
| 8663 AddObject(cls, class_name); | 8667 AddObject(cls, class_name); |
| 8664 // Link class to this library. | 8668 // Link class to this library. |
| 8665 cls.set_library(*this); | 8669 cls.set_library(*this); |
| 8666 InvalidateResolvedName(class_name); | 8670 InvalidateResolvedName(class_name); |
| 8667 } | 8671 } |
| 8668 | 8672 |
| 8669 static void AddScriptIfUnique(const GrowableObjectArray& scripts, | 8673 static void AddScriptIfUnique(const GrowableObjectArray& scripts, |
| 8670 Script& candidate) { | 8674 const Script& candidate) { |
| 8671 if (candidate.IsNull()) { | 8675 if (candidate.IsNull()) { |
| 8672 return; | 8676 return; |
| 8673 } | 8677 } |
| 8674 Script& script_obj = Script::Handle(); | 8678 Script& script_obj = Script::Handle(); |
| 8675 | 8679 |
| 8676 for (int i = 0; i < scripts.Length(); i++) { | 8680 for (int i = 0; i < scripts.Length(); i++) { |
| 8677 script_obj ^= scripts.At(i); | 8681 script_obj ^= scripts.At(i); |
| 8678 if (script_obj.raw() == candidate.raw()) { | 8682 if (script_obj.raw() == candidate.raw()) { |
| 8679 // We already have a reference to this script. | 8683 // We already have a reference to this script. |
| 8680 return; | 8684 return; |
| (...skipping 3722 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12403 va_start(args, format); | 12407 va_start(args, format); |
| 12404 RawLanguageError* result = LanguageError::NewFormattedV( | 12408 RawLanguageError* result = LanguageError::NewFormattedV( |
| 12405 prev_error, script, token_pos, kind, space, format, args); | 12409 prev_error, script, token_pos, kind, space, format, args); |
| 12406 NoGCScope no_gc; | 12410 NoGCScope no_gc; |
| 12407 va_end(args); | 12411 va_end(args); |
| 12408 return result; | 12412 return result; |
| 12409 } | 12413 } |
| 12410 | 12414 |
| 12411 | 12415 |
| 12412 RawLanguageError* LanguageError::New(const String& formatted_message, | 12416 RawLanguageError* LanguageError::New(const String& formatted_message, |
| 12417 Kind kind, |
| 12413 Heap::Space space) { | 12418 Heap::Space space) { |
| 12414 ASSERT(Object::language_error_class() != Class::null()); | 12419 ASSERT(Object::language_error_class() != Class::null()); |
| 12415 LanguageError& result = LanguageError::Handle(); | 12420 LanguageError& result = LanguageError::Handle(); |
| 12416 { | 12421 { |
| 12417 RawObject* raw = Object::Allocate(LanguageError::kClassId, | 12422 RawObject* raw = Object::Allocate(LanguageError::kClassId, |
| 12418 LanguageError::InstanceSize(), | 12423 LanguageError::InstanceSize(), |
| 12419 space); | 12424 space); |
| 12420 NoGCScope no_gc; | 12425 NoGCScope no_gc; |
| 12421 result ^= raw; | 12426 result ^= raw; |
| 12422 } | 12427 } |
| 12423 result.set_formatted_message(formatted_message); | 12428 result.set_formatted_message(formatted_message); |
| 12429 result.set_kind(kind); |
| 12424 return result.raw(); | 12430 return result.raw(); |
| 12425 } | 12431 } |
| 12426 | 12432 |
| 12427 | 12433 |
| 12428 void LanguageError::set_previous_error(const Error& value) const { | 12434 void LanguageError::set_previous_error(const Error& value) const { |
| 12429 StorePointer(&raw_ptr()->previous_error_, value.raw()); | 12435 StorePointer(&raw_ptr()->previous_error_, value.raw()); |
| 12430 } | 12436 } |
| 12431 | 12437 |
| 12432 | 12438 |
| 12433 void LanguageError::set_script(const Script& value) const { | 12439 void LanguageError::set_script(const Script& value) const { |
| (...skipping 25 matching lines...) Expand all Loading... |
| 12459 RawString* LanguageError::FormatMessage() const { | 12465 RawString* LanguageError::FormatMessage() const { |
| 12460 if (formatted_message() != String::null()) { | 12466 if (formatted_message() != String::null()) { |
| 12461 return formatted_message(); | 12467 return formatted_message(); |
| 12462 } | 12468 } |
| 12463 const char* message_header; | 12469 const char* message_header; |
| 12464 switch (kind()) { | 12470 switch (kind()) { |
| 12465 case kWarning: message_header = "warning"; break; | 12471 case kWarning: message_header = "warning"; break; |
| 12466 case kError: message_header = "error"; break; | 12472 case kError: message_header = "error"; break; |
| 12467 case kMalformedType: message_header = "malformed type"; break; | 12473 case kMalformedType: message_header = "malformed type"; break; |
| 12468 case kMalboundedType: message_header = "malbounded type"; break; | 12474 case kMalboundedType: message_header = "malbounded type"; break; |
| 12475 case kBailout: message_header = "bailout"; break; |
| 12469 default: message_header = ""; UNREACHABLE(); | 12476 default: message_header = ""; UNREACHABLE(); |
| 12470 } | 12477 } |
| 12471 String& result = String::Handle(); | 12478 String& result = String::Handle(); |
| 12472 String& msg = String::Handle(message()); | 12479 String& msg = String::Handle(message()); |
| 12473 const Script& scr = Script::Handle(script()); | 12480 const Script& scr = Script::Handle(script()); |
| 12474 if (!scr.IsNull()) { | 12481 if (!scr.IsNull()) { |
| 12475 const String& script_url = String::Handle(scr.url()); | 12482 const String& script_url = String::Handle(scr.url()); |
| 12476 if (token_pos() >= 0) { | 12483 if (token_pos() >= 0) { |
| 12477 intptr_t line, column; | 12484 intptr_t line, column; |
| 12478 scr.GetTokenLocation(token_pos(), &line, &column); | 12485 scr.GetTokenLocation(token_pos(), &line, &column); |
| (...skipping 6334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 18813 return tag_label.ToCString(); | 18820 return tag_label.ToCString(); |
| 18814 } | 18821 } |
| 18815 | 18822 |
| 18816 | 18823 |
| 18817 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { | 18824 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 18818 Instance::PrintJSONImpl(stream, ref); | 18825 Instance::PrintJSONImpl(stream, ref); |
| 18819 } | 18826 } |
| 18820 | 18827 |
| 18821 | 18828 |
| 18822 } // namespace dart | 18829 } // namespace dart |
| OLD | NEW |