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

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

Issue 1132603003: Change RangeError instances to use RangeError.range. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Tweaks Created 5 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) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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/exceptions.h" 5 #include "vm/exceptions.h"
6 6
7 #include "platform/address_sanitizer.h" 7 #include "platform/address_sanitizer.h"
8 8
9 #include "vm/dart_api_impl.h" 9 #include "vm/dart_api_impl.h"
10 #include "vm/dart_entry.h" 10 #include "vm/dart_entry.h"
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 const Array& args = Array::Handle(Array::New(1)); 554 const Array& args = Array::Handle(Array::New(1));
555 args.SetAt(0, arg); 555 args.SetAt(0, arg);
556 Exceptions::ThrowByType(Exceptions::kArgument, args); 556 Exceptions::ThrowByType(Exceptions::kArgument, args);
557 } 557 }
558 558
559 559
560 void Exceptions::ThrowRangeError(const char* argument_name, 560 void Exceptions::ThrowRangeError(const char* argument_name,
561 const Integer& argument_value, 561 const Integer& argument_value,
562 intptr_t expected_from, 562 intptr_t expected_from,
563 intptr_t expected_to) { 563 intptr_t expected_to) {
564 const String& error = String::Handle(String::NewFormatted( 564 const Array& args = Array::Handle(Array::New(4));
565 "%s (%s) must be in the range [%" Pd "..%" Pd ")", 565 args.SetAt(0, argument_value);
566 argument_name, 566 args.SetAt(1, Integer::Handle(Integer::New(expected_from)));
567 argument_value.ToCString(), 567 args.SetAt(2, Integer::Handle(Integer::New(expected_to)));
568 expected_from, 568 args.SetAt(3, String::Handle(String::New(argument_name)));
569 expected_to)); 569 Exceptions::ThrowByType(Exceptions::kRangeRange, args);
570
571 const Array& args = Array::Handle(Array::New(1));
572 args.SetAt(0, error);
573 Exceptions::ThrowByType(Exceptions::kRange, args);
574 } 570 }
575 571
576 572
577 RawObject* Exceptions::Create(ExceptionType type, const Array& arguments) { 573 RawObject* Exceptions::Create(ExceptionType type, const Array& arguments) {
578 Library& library = Library::Handle(); 574 Library& library = Library::Handle();
579 const String* class_name = NULL; 575 const String* class_name = NULL;
580 const String* constructor_name = &Symbols::Dot(); 576 const String* constructor_name = &Symbols::Dot();
581 switch (type) { 577 switch (type) {
582 case kNone: 578 case kNone:
583 case kStackOverflow: 579 case kStackOverflow:
584 case kOutOfMemory: 580 case kOutOfMemory:
585 UNREACHABLE(); 581 UNREACHABLE();
586 break; 582 break;
587 case kRange: 583 case kRange:
588 library = Library::CoreLibrary(); 584 library = Library::CoreLibrary();
589 class_name = &Symbols::RangeError(); 585 class_name = &Symbols::RangeError();
590 break; 586 break;
587 case kRangeRange:
588 library = Library::CoreLibrary();
589 class_name = &Symbols::RangeError();
590 constructor_name = &Symbols::DotRange();
591 break;
591 case kArgument: 592 case kArgument:
592 library = Library::CoreLibrary(); 593 library = Library::CoreLibrary();
593 class_name = &Symbols::ArgumentError(); 594 class_name = &Symbols::ArgumentError();
594 break; 595 break;
595 case kNoSuchMethod: 596 case kNoSuchMethod:
596 library = Library::CoreLibrary(); 597 library = Library::CoreLibrary();
597 class_name = &Symbols::NoSuchMethodError(); 598 class_name = &Symbols::NoSuchMethodError();
598 constructor_name = &Symbols::DotWithType(); 599 constructor_name = &Symbols::DotWithType();
599 break; 600 break;
600 case kFormat: 601 case kFormat:
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
664 665
665 // Throw JavascriptCompatibilityError exception. 666 // Throw JavascriptCompatibilityError exception.
666 void Exceptions::ThrowJavascriptCompatibilityError(const char* msg) { 667 void Exceptions::ThrowJavascriptCompatibilityError(const char* msg) {
667 const Array& exc_args = Array::Handle(Array::New(1)); 668 const Array& exc_args = Array::Handle(Array::New(1));
668 const String& msg_str = String::Handle(String::New(msg)); 669 const String& msg_str = String::Handle(String::New(msg));
669 exc_args.SetAt(0, msg_str); 670 exc_args.SetAt(0, msg_str);
670 Exceptions::ThrowByType(Exceptions::kJavascriptCompatibilityError, exc_args); 671 Exceptions::ThrowByType(Exceptions::kJavascriptCompatibilityError, exc_args);
671 } 672 }
672 673
673 } // namespace dart 674 } // namespace dart
OLDNEW
« runtime/lib/typed_data.dart ('K') | « runtime/vm/exceptions.h ('k') | runtime/vm/symbols.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698