diff --git a/ecmascript/global_env_constants.cpp b/ecmascript/global_env_constants.cpp index e0ef402f5e9d6df38391451bb7e936a37dfedf97..da1b2c02efdfdad1b1797e7d96a35a72ffd5d012 100644 --- a/ecmascript/global_env_constants.cpp +++ b/ecmascript/global_env_constants.cpp @@ -449,8 +449,10 @@ void GlobalEnvConstants::InitRootsClassesPartTwo(JSHClass *hClass, ObjectFactory JSType::JS_API_LIGHT_WEIGHT_SET_ITERATOR)); SetConstant(ConstantIndex::JS_API_BITVECTOR_ITERATOR_CLASS_INDEX, factory->NewEcmaHClass(hClass, JSAPIBitVectorIterator::SIZE, JSType::JS_API_BITVECTOR_ITERATOR)); - SetConstant(ConstantIndex::XREF_OBJECT_HCLASS_INDEX, - factory->NewEcmaHClass(hClass, JSObject::SIZE, JSType::JS_XREF_OBJECT)); + if (Runtime::GetInstance()->IsHybridVm()) { + SetConstant(ConstantIndex::XREF_OBJECT_HCLASS_INDEX, + factory->NewEcmaHClass(hClass, JSObject::SIZE, JSType::JS_XREF_OBJECT)); + } } void GlobalEnvConstants::InitRootsClasses(ObjectFactory *factory) diff --git a/ecmascript/serializer/tests/inter_op_serializer_test.cpp b/ecmascript/serializer/tests/inter_op_serializer_test.cpp index c22879f4bcb76b4aa7da6759b0c89cccb6032ccd..e667bcf2dbf308ab02f2933071c931c7d1184462 100644 --- a/ecmascript/serializer/tests/inter_op_serializer_test.cpp +++ b/ecmascript/serializer/tests/inter_op_serializer_test.cpp @@ -2713,6 +2713,7 @@ HWTEST_F_L0(InterOpSerializerTest, SerializeMultiSharedRegion2) HWTEST_F_L0(InterOpSerializerTest, SerializeInterOpObject) { auto vm = thread->GetEcmaVM(); + JSNApi::InitHybridVMEnv(vm); ObjectFactory *factory = vm->GetFactory(); JSHandle xrefObject = factory->NewJSXRefObject(); WrapXRefObject(JSNApiHelper::ToLocal(JSHandle(xrefObject)), @@ -2739,6 +2740,7 @@ HWTEST_F_L0(InterOpSerializerTest, SerializeInterOpObject) HWTEST_F_L0(InterOpSerializerTest, SerializeInterOpObjectWithEmptyAttachFunc) { auto vm = thread->GetEcmaVM(); + JSNApi::InitHybridVMEnv(vm); ObjectFactory *factory = vm->GetFactory(); JSHandle xrefObject = factory->NewJSXRefObject(); WrapXRefObject(JSNApiHelper::ToLocal(JSHandle(xrefObject)), @@ -2765,6 +2767,7 @@ HWTEST_F_L0(InterOpSerializerTest, SerializeInterOpObjectWithEmptyAttachFunc) HWTEST_F_L0(InterOpSerializerTest, SerializeWeakInterOpObject) { auto vm = thread->GetEcmaVM(); + JSNApi::InitHybridVMEnv(vm); ObjectFactory *factory = vm->GetFactory(); JSHandle xrefObject = factory->NewJSXRefObject(); WrapXRefObject(JSNApiHelper::ToLocal(JSHandle(xrefObject)), @@ -2795,6 +2798,7 @@ HWTEST_F_L0(InterOpSerializerTest, SerializeWeakInterOpObject) HWTEST_F_L0(InterOpSerializerTest, SerializeInterOpProxyObject) { auto vm = thread->GetEcmaVM(); + JSNApi::InitHybridVMEnv(vm); ObjectFactory *factory = vm->GetFactory(); JSHandle xrefObject = factory->NewJSXRefObject(); WrapXRefObject(JSNApiHelper::ToLocal(JSHandle(xrefObject)), @@ -2823,6 +2827,7 @@ HWTEST_F_L0(InterOpSerializerTest, SerializeInterOpProxyObject) HWTEST_F_L0(InterOpSerializerTest, SerializeInvalidInterOpObject1) { auto vm = thread->GetEcmaVM(); + JSNApi::InitHybridVMEnv(vm); ObjectFactory *factory = vm->GetFactory(); JSHandle hClassHandle(thread->GlobalConstants()->GetHandledObjectClass()); JSHandle object = factory->NewJSObject(hClassHandle); @@ -2837,6 +2842,7 @@ HWTEST_F_L0(InterOpSerializerTest, SerializeInvalidInterOpObject1) HWTEST_F_L0(InterOpSerializerTest, SerializeInvalidInterOpObject2) { auto vm = thread->GetEcmaVM(); + JSNApi::InitHybridVMEnv(vm); ObjectFactory *factory = vm->GetFactory(); JSHandle xrefObject = factory->NewJSXRefObject(); WrapXRefObject(JSNApiHelper::ToLocal(JSHandle(xrefObject)), @@ -2859,6 +2865,7 @@ HWTEST_F_L0(InterOpSerializerTest, SerializeInvalidInterOpObject2) HWTEST_F_L0(InterOpSerializerTest, SerializeInvalidInterOpObject3) { auto vm = thread->GetEcmaVM(); + JSNApi::InitHybridVMEnv(vm); ObjectFactory *factory = vm->GetFactory(); JSHandle xrefObject = factory->NewJSXRefObject();