From fa4e33afb158f0f4bede2346aea9bede39dffc1f Mon Sep 17 00:00:00 2001 From: lifansheng Date: Thu, 25 Nov 2021 10:37:20 +0800 Subject: [PATCH] Signed-off-by: lifansheng On branch master Your branch is up to date with 'origin/master'. --- ecmascript/js_hclass.h | 5 +++++ ecmascript/napi/include/jsnapi.h | 7 +++++++ ecmascript/napi/jsnapi.cpp | 34 ++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/ecmascript/js_hclass.h b/ecmascript/js_hclass.h index e12d76cbfb..f5ea36c102 100644 --- a/ecmascript/js_hclass.h +++ b/ecmascript/js_hclass.h @@ -312,6 +312,11 @@ public: return GetObjectType() == JSType::STRING; } + inline bool IsSymbol() const + { + return GetObjectType() == JSType::SYMBOL; + } + inline bool IsStringOrSymbol() const { JSType jsType = GetObjectType(); diff --git a/ecmascript/napi/include/jsnapi.h b/ecmascript/napi/include/jsnapi.h index a3a4885cf4..c75aba703e 100644 --- a/ecmascript/napi/include/jsnapi.h +++ b/ecmascript/napi/include/jsnapi.h @@ -315,6 +315,13 @@ public: bool IsJSPrimitiveBoolean(); bool IsJSPrimitiveString(); + bool IsGeneratorObject(); + bool IsJSPrimitiveSymbol(); + + bool IsArgumentsObject(); + bool IsGeneratorFunction(); + bool IsAsyncFunction(); + bool IsStrictEquals(const EcmaVM *vm, Local value); Local Typeof(const EcmaVM *vm); bool InstanceOf(const EcmaVM *vm, Local value); diff --git a/ecmascript/napi/jsnapi.cpp b/ecmascript/napi/jsnapi.cpp index edad0b4265..8c4b90c0b0 100644 --- a/ecmascript/napi/jsnapi.cpp +++ b/ecmascript/napi/jsnapi.cpp @@ -1813,4 +1813,38 @@ bool JSValueRef::IsJSPrimitiveString() JSHandle obj = JSNApiHelper::ToJSHandle(this); return JSPrimitiveRef::Cast(obj->GetHeapObject())->IsString(); } + +bool JSValueRef::IsJSPrimitiveSymbol() +{ + JSHandle obj = JSNApiHelper::ToJSHandle(this); + return JSPrimitiveRef::Cast(obj->GetHeapObject())->IsSymbol(); +} + +bool JSValueRef::IsGeneratorObject() +{ + JSHandle obj = JSNApiHelper::ToJSHandle(this); + bool rst = obj->IsGeneratorObject(); + return rst; +} + +bool JSValueRef::IsAsyncFunction() +{ + JSHandle obj = JSNApiHelper::ToJSHandle(this); + bool rst = obj->IsJSAsyncFunction(); + return rst; +} + +bool JSValueRef::IsArgumentsObject() +{ + JSHandle obj = JSNApiHelper::ToJSHandle(this); + bool rst = obj->IsArguments(); + return rst; +} + +bool JSValueRef::IsGeneratorFunction() +{ + JSHandle obj = JSNApiHelper::ToJSHandle(this); + bool rst = obj->IsGeneratorFunction(); + return rst; +} } // namespace panda -- Gitee