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

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

Issue 260713008: Add support for javascript incompatibility warnings. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 7 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 #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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698