v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
js-plural-rules-inl.h
Go to the documentation of this file.
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_OBJECTS_JS_PLURAL_RULES_INL_H_
6#define V8_OBJECTS_JS_PLURAL_RULES_INL_H_
7
8#ifndef V8_INTL_SUPPORT
9#error Internationalization is expected to be enabled.
10#endif // V8_INTL_SUPPORT
11
13// Include the non-inl header before the rest of the headers.
14
15#include "src/api/api-inl.h"
17
18// Has to be the last include (doesn't have include guards):
20
21namespace v8 {
22namespace internal {
23
24#include "torque-generated/src/objects/js-plural-rules-tq-inl.inc"
25
26TQ_OBJECT_CONSTRUCTORS_IMPL(JSPluralRules)
27
28ACCESSORS(JSPluralRules, icu_plural_rules, Tagged<Managed<icu::PluralRules>>,
29 kIcuPluralRulesOffset)
31 Tagged<Managed<icu::number::LocalizedNumberFormatter>>,
32 kIcuNumberFormatterOffset)
33
34inline void JSPluralRules::set_type(Type type) {
35 DCHECK(TypeBit::is_valid(type));
36 int hints = flags();
37 hints = TypeBit::update(hints, type);
38 set_flags(hints);
39}
40
42 return TypeBit::decode(flags());
43}
44
45} // namespace internal
46} // namespace v8
47
49
50#endif // V8_OBJECTS_JS_PLURAL_RULES_INL_H_
Flag flags[]
Definition flags.cc:3797
#define ACCESSORS(holder, name, type, offset)
#define TQ_OBJECT_CONSTRUCTORS_IMPL(Type)
#define DCHECK(condition)
Definition logging.h:482