1 2 /** 3 * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef ES2PANDA_COMPILER_CHECKER_ETS_PRIMITIVE_WRAPPERS_H 18 #define ES2PANDA_COMPILER_CHECKER_ETS_PRIMITIVE_WRAPPERS_H 19 20 #include "checker/types/ets/etsObjectType.h" 21 22 namespace ark::es2panda::checker { 23 class ETSObjectType; 24 25 using WrapperDesc = ArenaUnorderedMap<util::StringView, std::pair<ETSObjectType *, ETSObjectFlags>>; 26 27 class PrimitiveWrappers { 28 public: PrimitiveWrappers(ArenaAllocator *allocator)29 explicit PrimitiveWrappers(ArenaAllocator *allocator) : wrappers_(allocator->Adapter()) 30 { 31 wrappers_.insert({"Boolean", {nullptr, ETSObjectFlags::BUILTIN_BOOLEAN}}); 32 wrappers_.insert({"Byte", {nullptr, ETSObjectFlags::BUILTIN_BYTE}}); 33 wrappers_.insert({"Char", {nullptr, ETSObjectFlags::BUILTIN_CHAR}}); 34 wrappers_.insert({"Short", {nullptr, ETSObjectFlags::BUILTIN_SHORT}}); 35 wrappers_.insert({"Int", {nullptr, ETSObjectFlags::BUILTIN_INT}}); 36 wrappers_.insert({"Long", {nullptr, ETSObjectFlags::BUILTIN_LONG}}); 37 wrappers_.insert({"Float", {nullptr, ETSObjectFlags::BUILTIN_FLOAT}}); 38 wrappers_.insert({"Double", {nullptr, ETSObjectFlags::BUILTIN_DOUBLE}}); 39 } 40 NO_COPY_SEMANTIC(PrimitiveWrappers); 41 NO_MOVE_SEMANTIC(PrimitiveWrappers); 42 ~PrimitiveWrappers() = default; 43 Wrappers()44 WrapperDesc &Wrappers() 45 { 46 return wrappers_; 47 } 48 Wrappers() const49 const WrapperDesc &Wrappers() const 50 { 51 return wrappers_; 52 } 53 54 private: 55 WrapperDesc wrappers_; 56 }; 57 } // namespace ark::es2panda::checker 58 #endif 59