Home | History | Annotate | Download | only in objects
      1 // Copyright 2018 the V8 project authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef V8_INTL_SUPPORT
      6 #error Internationalization is expected to be enabled.
      7 #endif  // V8_INTL_SUPPORT
      8 
      9 #ifndef V8_OBJECTS_JS_COLLATOR_INL_H_
     10 #define V8_OBJECTS_JS_COLLATOR_INL_H_
     11 
     12 #include "src/objects-inl.h"
     13 #include "src/objects/js-collator.h"
     14 
     15 // Has to be the last include (doesn't have include guards):
     16 #include "src/objects/object-macros.h"
     17 
     18 namespace v8 {
     19 namespace internal {
     20 
     21 ACCESSORS(JSCollator, icu_collator, Managed<icu::Collator>, kICUCollatorOffset)
     22 ACCESSORS(JSCollator, bound_compare, Object, kBoundCompareOffset);
     23 SMI_ACCESSORS(JSCollator, flags, kFlagsOffset)
     24 
     25 inline void JSCollator::set_usage(Usage usage) {
     26   DCHECK_LT(usage, Usage::COUNT);
     27   int hints = flags();
     28   hints = UsageBits::update(hints, usage);
     29   set_flags(hints);
     30 }
     31 
     32 inline JSCollator::Usage JSCollator::usage() const {
     33   return UsageBits::decode(flags());
     34 }
     35 
     36 CAST_ACCESSOR(JSCollator);
     37 
     38 }  // namespace internal
     39 }  // namespace v8
     40 
     41 #include "src/objects/object-macros-undef.h"
     42 
     43 #endif  // V8_OBJECTS_JS_COLLATOR_INL_H_
     44