1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_ENGINE_JS_TYPES_H
17 #define FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_ENGINE_JS_TYPES_H
18 
19 #ifdef USE_ARK_ENGINE
20 #include "frameworks/bridge/declarative_frontend/engine/jsi/jsi_types.h"
21 #endif
22 
23 namespace OHOS::Ace::Framework {
24 
25 #ifdef USE_ARK_ENGINE
26 
27 using JSVal = JsiValue;
28 using JSObject = JsiObject;
29 using JSFunc = JsiFunction;
30 using JSArray = JsiArray;
31 using JSArrayBuffer = JsiArrayBuffer;
32 using JSUint8ClampedArray = JsiUint8ClampedArray;
33 using JSString = JsiString;
34 using JSCallbackInfo = JsiCallbackInfo;
35 using JSGCMarkCallbackInfo = JsiGCMarkCallbackInfo;
36 using JSException = JsiException;
37 using JSExecutionContext = JsiExecutionContext;
38 using JSObjTemplate = JsiObjTemplate;
39 using JSDate = JsiDate;
40 using JSFastNativeScope = panda::JsiFastNativeScope;
41 
42 template<class T>
ToJSValue(T && val)43 inline auto ToJSValue(T&& val)
44 {
45     return JsiValueConvertor::toJsiValue(std::forward<T>(val));
46 };
47 
GetEcmaVm()48 inline const panda::ecmascript::EcmaVM* GetEcmaVm()
49 {
50     return JsiValueConvertor::getEcmaVm();
51 }
52 
53 Local<JSValueRef> JsStopPropagation(panda::JsiRuntimeCallInfo *info);
54 Local<JSValueRef> JsPreventDefault(panda::JsiRuntimeCallInfo *info);
55 Local<JSValueRef> JsClickPreventDefault(panda::JsiRuntimeCallInfo *info);
56 Local<JSValueRef> JsTouchPreventDefault(panda::JsiRuntimeCallInfo *info);
57 Local<JSValueRef> JsGetHistoricalPoints(panda::JsiRuntimeCallInfo *info);
58 
59 #endif
60 
61 }; // namespace OHOS::Ace::Framework
62 
63 #endif // FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_ENGINE_JS_TYPES_H
64