OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // limitations under the License. | 4 // limitations under the License. |
5 | 5 |
6 #include "src/i18n.h" | 6 #include "src/i18n.h" |
7 | 7 |
8 #include "unicode/brkiter.h" | 8 #include "unicode/brkiter.h" |
9 #include "unicode/calendar.h" | 9 #include "unicode/calendar.h" |
10 #include "unicode/coll.h" | 10 #include "unicode/coll.h" |
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
412 SLOPPY).Assert(); | 412 SLOPPY).Assert(); |
413 | 413 |
414 JSObject::SetProperty( | 414 JSObject::SetProperty( |
415 resolved, | 415 resolved, |
416 factory->NewStringFromStaticAscii("maximumFractionDigits"), | 416 factory->NewStringFromStaticAscii("maximumFractionDigits"), |
417 factory->NewNumberFromInt(number_format->getMaximumFractionDigits()), | 417 factory->NewNumberFromInt(number_format->getMaximumFractionDigits()), |
418 SLOPPY).Assert(); | 418 SLOPPY).Assert(); |
419 | 419 |
420 Handle<String> key = | 420 Handle<String> key = |
421 factory->NewStringFromStaticAscii("minimumSignificantDigits"); | 421 factory->NewStringFromStaticAscii("minimumSignificantDigits"); |
422 if (JSReceiver::HasOwnProperty(resolved, key)) { | 422 Maybe<bool> maybe = JSReceiver::HasOwnProperty(resolved, key); |
| 423 CHECK(maybe.has_value); |
| 424 if (maybe.value) { |
423 JSObject::SetProperty( | 425 JSObject::SetProperty( |
424 resolved, | 426 resolved, |
425 factory->NewStringFromStaticAscii("minimumSignificantDigits"), | 427 factory->NewStringFromStaticAscii("minimumSignificantDigits"), |
426 factory->NewNumberFromInt(number_format->getMinimumSignificantDigits()), | 428 factory->NewNumberFromInt(number_format->getMinimumSignificantDigits()), |
427 SLOPPY).Assert(); | 429 SLOPPY).Assert(); |
428 } | 430 } |
429 | 431 |
430 key = factory->NewStringFromStaticAscii("maximumSignificantDigits"); | 432 key = factory->NewStringFromStaticAscii("maximumSignificantDigits"); |
431 if (JSReceiver::HasOwnProperty(resolved, key)) { | 433 maybe = JSReceiver::HasOwnProperty(resolved, key); |
| 434 CHECK(maybe.has_value); |
| 435 if (maybe.value) { |
432 JSObject::SetProperty( | 436 JSObject::SetProperty( |
433 resolved, | 437 resolved, |
434 factory->NewStringFromStaticAscii("maximumSignificantDigits"), | 438 factory->NewStringFromStaticAscii("maximumSignificantDigits"), |
435 factory->NewNumberFromInt(number_format->getMaximumSignificantDigits()), | 439 factory->NewNumberFromInt(number_format->getMaximumSignificantDigits()), |
436 SLOPPY).Assert(); | 440 SLOPPY).Assert(); |
437 } | 441 } |
438 | 442 |
439 // Set the locale | 443 // Set the locale |
440 char result[ULOC_FULLNAME_CAPACITY]; | 444 char result[ULOC_FULLNAME_CAPACITY]; |
441 status = U_ZERO_ERROR; | 445 status = U_ZERO_ERROR; |
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
776 | 780 |
777 return date_format; | 781 return date_format; |
778 } | 782 } |
779 | 783 |
780 | 784 |
781 icu::SimpleDateFormat* DateFormat::UnpackDateFormat( | 785 icu::SimpleDateFormat* DateFormat::UnpackDateFormat( |
782 Isolate* isolate, | 786 Isolate* isolate, |
783 Handle<JSObject> obj) { | 787 Handle<JSObject> obj) { |
784 Handle<String> key = | 788 Handle<String> key = |
785 isolate->factory()->NewStringFromStaticAscii("dateFormat"); | 789 isolate->factory()->NewStringFromStaticAscii("dateFormat"); |
786 if (JSReceiver::HasOwnProperty(obj, key)) { | 790 Maybe<bool> maybe = JSReceiver::HasOwnProperty(obj, key); |
| 791 CHECK(maybe.has_value); |
| 792 if (maybe.value) { |
787 return reinterpret_cast<icu::SimpleDateFormat*>( | 793 return reinterpret_cast<icu::SimpleDateFormat*>( |
788 obj->GetInternalField(0)); | 794 obj->GetInternalField(0)); |
789 } | 795 } |
790 | 796 |
791 return NULL; | 797 return NULL; |
792 } | 798 } |
793 | 799 |
794 | 800 |
795 template<class T> | 801 template<class T> |
796 void DeleteNativeObjectAt(const v8::WeakCallbackData<v8::Value, void>& data, | 802 void DeleteNativeObjectAt(const v8::WeakCallbackData<v8::Value, void>& data, |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
850 | 856 |
851 return number_format; | 857 return number_format; |
852 } | 858 } |
853 | 859 |
854 | 860 |
855 icu::DecimalFormat* NumberFormat::UnpackNumberFormat( | 861 icu::DecimalFormat* NumberFormat::UnpackNumberFormat( |
856 Isolate* isolate, | 862 Isolate* isolate, |
857 Handle<JSObject> obj) { | 863 Handle<JSObject> obj) { |
858 Handle<String> key = | 864 Handle<String> key = |
859 isolate->factory()->NewStringFromStaticAscii("numberFormat"); | 865 isolate->factory()->NewStringFromStaticAscii("numberFormat"); |
860 if (JSReceiver::HasOwnProperty(obj, key)) { | 866 Maybe<bool> maybe = JSReceiver::HasOwnProperty(obj, key); |
| 867 CHECK(maybe.has_value); |
| 868 if (maybe.value) { |
861 return reinterpret_cast<icu::DecimalFormat*>(obj->GetInternalField(0)); | 869 return reinterpret_cast<icu::DecimalFormat*>(obj->GetInternalField(0)); |
862 } | 870 } |
863 | 871 |
864 return NULL; | 872 return NULL; |
865 } | 873 } |
866 | 874 |
867 | 875 |
868 void NumberFormat::DeleteNumberFormat( | 876 void NumberFormat::DeleteNumberFormat( |
869 const v8::WeakCallbackData<v8::Value, void>& data) { | 877 const v8::WeakCallbackData<v8::Value, void>& data) { |
870 DeleteNativeObjectAt<icu::DecimalFormat>(data, 0); | 878 DeleteNativeObjectAt<icu::DecimalFormat>(data, 0); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
905 SetResolvedCollatorSettings(isolate, icu_locale, collator, resolved); | 913 SetResolvedCollatorSettings(isolate, icu_locale, collator, resolved); |
906 } | 914 } |
907 | 915 |
908 return collator; | 916 return collator; |
909 } | 917 } |
910 | 918 |
911 | 919 |
912 icu::Collator* Collator::UnpackCollator(Isolate* isolate, | 920 icu::Collator* Collator::UnpackCollator(Isolate* isolate, |
913 Handle<JSObject> obj) { | 921 Handle<JSObject> obj) { |
914 Handle<String> key = isolate->factory()->NewStringFromStaticAscii("collator"); | 922 Handle<String> key = isolate->factory()->NewStringFromStaticAscii("collator"); |
915 if (JSReceiver::HasOwnProperty(obj, key)) { | 923 Maybe<bool> maybe = JSReceiver::HasOwnProperty(obj, key); |
| 924 CHECK(maybe.has_value); |
| 925 if (maybe.value) { |
916 return reinterpret_cast<icu::Collator*>(obj->GetInternalField(0)); | 926 return reinterpret_cast<icu::Collator*>(obj->GetInternalField(0)); |
917 } | 927 } |
918 | 928 |
919 return NULL; | 929 return NULL; |
920 } | 930 } |
921 | 931 |
922 | 932 |
923 void Collator::DeleteCollator( | 933 void Collator::DeleteCollator( |
924 const v8::WeakCallbackData<v8::Value, void>& data) { | 934 const v8::WeakCallbackData<v8::Value, void>& data) { |
925 DeleteNativeObjectAt<icu::Collator>(data, 0); | 935 DeleteNativeObjectAt<icu::Collator>(data, 0); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
964 } | 974 } |
965 | 975 |
966 return break_iterator; | 976 return break_iterator; |
967 } | 977 } |
968 | 978 |
969 | 979 |
970 icu::BreakIterator* BreakIterator::UnpackBreakIterator(Isolate* isolate, | 980 icu::BreakIterator* BreakIterator::UnpackBreakIterator(Isolate* isolate, |
971 Handle<JSObject> obj) { | 981 Handle<JSObject> obj) { |
972 Handle<String> key = | 982 Handle<String> key = |
973 isolate->factory()->NewStringFromStaticAscii("breakIterator"); | 983 isolate->factory()->NewStringFromStaticAscii("breakIterator"); |
974 if (JSReceiver::HasOwnProperty(obj, key)) { | 984 Maybe<bool> maybe = JSReceiver::HasOwnProperty(obj, key); |
| 985 CHECK(maybe.has_value); |
| 986 if (maybe.value) { |
975 return reinterpret_cast<icu::BreakIterator*>(obj->GetInternalField(0)); | 987 return reinterpret_cast<icu::BreakIterator*>(obj->GetInternalField(0)); |
976 } | 988 } |
977 | 989 |
978 return NULL; | 990 return NULL; |
979 } | 991 } |
980 | 992 |
981 | 993 |
982 void BreakIterator::DeleteBreakIterator( | 994 void BreakIterator::DeleteBreakIterator( |
983 const v8::WeakCallbackData<v8::Value, void>& data) { | 995 const v8::WeakCallbackData<v8::Value, void>& data) { |
984 DeleteNativeObjectAt<icu::BreakIterator>(data, 0); | 996 DeleteNativeObjectAt<icu::BreakIterator>(data, 0); |
985 DeleteNativeObjectAt<icu::UnicodeString>(data, 1); | 997 DeleteNativeObjectAt<icu::UnicodeString>(data, 1); |
986 DestroyGlobalHandle(data); | 998 DestroyGlobalHandle(data); |
987 } | 999 } |
988 | 1000 |
989 } } // namespace v8::internal | 1001 } } // namespace v8::internal |
OLD | NEW |