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 11661 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12377 va_start(args, format); | 12381 va_start(args, format); |
12378 RawLanguageError* result = LanguageError::NewFormattedV( | 12382 RawLanguageError* result = LanguageError::NewFormattedV( |
12379 prev_error, script, token_pos, kind, space, format, args); | 12383 prev_error, script, token_pos, kind, space, format, args); |
12380 NoGCScope no_gc; | 12384 NoGCScope no_gc; |
12381 va_end(args); | 12385 va_end(args); |
12382 return result; | 12386 return result; |
12383 } | 12387 } |
12384 | 12388 |
12385 | 12389 |
12386 RawLanguageError* LanguageError::New(const String& formatted_message, | 12390 RawLanguageError* LanguageError::New(const String& formatted_message, |
| 12391 Kind kind, |
12387 Heap::Space space) { | 12392 Heap::Space space) { |
12388 ASSERT(Object::language_error_class() != Class::null()); | 12393 ASSERT(Object::language_error_class() != Class::null()); |
12389 LanguageError& result = LanguageError::Handle(); | 12394 LanguageError& result = LanguageError::Handle(); |
12390 { | 12395 { |
12391 RawObject* raw = Object::Allocate(LanguageError::kClassId, | 12396 RawObject* raw = Object::Allocate(LanguageError::kClassId, |
12392 LanguageError::InstanceSize(), | 12397 LanguageError::InstanceSize(), |
12393 space); | 12398 space); |
12394 NoGCScope no_gc; | 12399 NoGCScope no_gc; |
12395 result ^= raw; | 12400 result ^= raw; |
12396 } | 12401 } |
12397 result.set_formatted_message(formatted_message); | 12402 result.set_formatted_message(formatted_message); |
| 12403 result.set_kind(kind); |
12398 return result.raw(); | 12404 return result.raw(); |
12399 } | 12405 } |
12400 | 12406 |
12401 | 12407 |
12402 void LanguageError::set_previous_error(const Error& value) const { | 12408 void LanguageError::set_previous_error(const Error& value) const { |
12403 StorePointer(&raw_ptr()->previous_error_, value.raw()); | 12409 StorePointer(&raw_ptr()->previous_error_, value.raw()); |
12404 } | 12410 } |
12405 | 12411 |
12406 | 12412 |
12407 void LanguageError::set_script(const Script& value) const { | 12413 void LanguageError::set_script(const Script& value) const { |
(...skipping 25 matching lines...) Expand all Loading... |
12433 RawString* LanguageError::FormatMessage() const { | 12439 RawString* LanguageError::FormatMessage() const { |
12434 if (formatted_message() != String::null()) { | 12440 if (formatted_message() != String::null()) { |
12435 return formatted_message(); | 12441 return formatted_message(); |
12436 } | 12442 } |
12437 const char* message_header; | 12443 const char* message_header; |
12438 switch (kind()) { | 12444 switch (kind()) { |
12439 case kWarning: message_header = "warning"; break; | 12445 case kWarning: message_header = "warning"; break; |
12440 case kError: message_header = "error"; break; | 12446 case kError: message_header = "error"; break; |
12441 case kMalformedType: message_header = "malformed type"; break; | 12447 case kMalformedType: message_header = "malformed type"; break; |
12442 case kMalboundedType: message_header = "malbounded type"; break; | 12448 case kMalboundedType: message_header = "malbounded type"; break; |
| 12449 case kBailout: message_header = "bailout"; break; |
12443 default: message_header = ""; UNREACHABLE(); | 12450 default: message_header = ""; UNREACHABLE(); |
12444 } | 12451 } |
12445 String& result = String::Handle(); | 12452 String& result = String::Handle(); |
12446 String& msg = String::Handle(message()); | 12453 String& msg = String::Handle(message()); |
12447 const Script& scr = Script::Handle(script()); | 12454 const Script& scr = Script::Handle(script()); |
12448 if (!scr.IsNull()) { | 12455 if (!scr.IsNull()) { |
12449 const String& script_url = String::Handle(scr.url()); | 12456 const String& script_url = String::Handle(scr.url()); |
12450 if (token_pos() >= 0) { | 12457 if (token_pos() >= 0) { |
12451 intptr_t line, column; | 12458 intptr_t line, column; |
12452 scr.GetTokenLocation(token_pos(), &line, &column); | 12459 scr.GetTokenLocation(token_pos(), &line, &column); |
(...skipping 6334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
18787 return tag_label.ToCString(); | 18794 return tag_label.ToCString(); |
18788 } | 18795 } |
18789 | 18796 |
18790 | 18797 |
18791 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { | 18798 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { |
18792 Instance::PrintJSONImpl(stream, ref); | 18799 Instance::PrintJSONImpl(stream, ref); |
18793 } | 18800 } |
18794 | 18801 |
18795 | 18802 |
18796 } // namespace dart | 18803 } // namespace dart |
OLD | NEW |