5 #ifndef V8_INTL_SUPPORT 6 #error Internationalization is expected to be enabled. 7 #endif // V8_INTL_SUPPORT 9 #ifndef V8_OBJECTS_JS_LOCALE_H_ 10 #define V8_OBJECTS_JS_LOCALE_H_ 12 #include "src/global-handles.h" 13 #include "src/heap/factory.h" 14 #include "src/isolate.h" 15 #include "src/objects.h" 16 #include "unicode/unistr.h" 19 #include "src/objects/object-macros.h" 42 DECL_ACCESSORS(language,
Object)
43 DECL_ACCESSORS(script,
Object)
44 DECL_ACCESSORS(region,
Object)
45 DECL_ACCESSORS(base_name,
Object)
46 DECL_ACCESSORS2(locale,
String)
49 DECL_ACCESSORS(calendar,
Object)
50 DECL_ACCESSORS(collation,
Object)
51 DECL_ACCESSORS(numbering_system,
Object)
56 enum class CaseFirst {
63 inline void set_case_first(CaseFirst case_first);
64 inline CaseFirst case_first()
const;
69 enum class Numeric { NOTSET, TRUE_VALUE, FALSE_VALUE, COUNT };
70 inline void set_numeric(Numeric numeric);
71 inline Numeric numeric()
const;
76 enum class HourCycle {
83 inline void set_hour_cycle(HourCycle hour_cycle);
84 inline HourCycle hour_cycle()
const;
87 #define FLAGS_BIT_FIELDS(V, _) \ 88 V(CaseFirstBits, CaseFirst, 2, _) \ 89 V(NumericBits, Numeric, 2, _) \ 90 V(HourCycleBits, HourCycle, 2, _) 91 DEFINE_BIT_FIELDS(FLAGS_BIT_FIELDS)
92 #undef FLAGS_BIT_FIELDS 94 STATIC_ASSERT(CaseFirst::UPPER <= CaseFirstBits::kMax);
95 STATIC_ASSERT(CaseFirst::LOWER <= CaseFirstBits::kMax);
96 STATIC_ASSERT(CaseFirst::FALSE_VALUE <= CaseFirstBits::kMax);
97 STATIC_ASSERT(Numeric::NOTSET <= NumericBits::kMax);
98 STATIC_ASSERT(Numeric::FALSE_VALUE <= NumericBits::kMax);
99 STATIC_ASSERT(Numeric::TRUE_VALUE <= NumericBits::kMax);
100 STATIC_ASSERT(HourCycle::H11 <= HourCycleBits::kMax);
101 STATIC_ASSERT(HourCycle::H12 <= HourCycleBits::kMax);
102 STATIC_ASSERT(HourCycle::H23 <= HourCycleBits::kMax);
103 STATIC_ASSERT(HourCycle::H24 <= HourCycleBits::kMax);
106 DECL_INT_ACCESSORS(flags)
112 #define JS_LOCALE_FIELDS(V) \ 113 V(kJSLocaleOffset, kTaggedSize) \ 115 V(kLanguageOffset, kTaggedSize) \ 116 V(kScriptOffset, kTaggedSize) \ 117 V(kRegionOffset, kTaggedSize) \ 118 V(kBaseNameOffset, kTaggedSize) \ 119 V(kLocaleOffset, kTaggedSize) \ 121 V(kFlagsOffset, kTaggedSize) \ 122 V(kCalendarOffset, kTaggedSize) \ 123 V(kCollationOffset, kTaggedSize) \ 124 V(kNumberingSystemOffset, kTaggedSize) \ 128 DEFINE_FIELD_OFFSET_CONSTANTS(JSObject::kHeaderSize, JS_LOCALE_FIELDS)
129 #undef JS_LOCALE_FIELDS 132 DISALLOW_IMPLICIT_CONSTRUCTORS(
JSLocale);
138 #include "src/objects/object-macros-undef.h" 140 #endif // V8_OBJECTS_JS_LOCALE_H_