From 7ca14893b9ba3608c6b173bfccd6dae0fb775a62 Mon Sep 17 00:00:00 2001 From: Mikhail Lobotskiy Date: Fri, 1 Dec 2023 18:33:16 +0400 Subject: [PATCH] JSC: Added Dispose() to ~CJSContext() --- .../doctrenderer/js_internal/jsc/jsc_base.mm | 3 ++- DesktopEditor/doctrenderer/test/json/main.cpp | 19 ++++--------------- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/DesktopEditor/doctrenderer/js_internal/jsc/jsc_base.mm b/DesktopEditor/doctrenderer/js_internal/jsc/jsc_base.mm index b304a6aab1..fb8a097e73 100644 --- a/DesktopEditor/doctrenderer/js_internal/jsc/jsc_base.mm +++ b/DesktopEditor/doctrenderer/js_internal/jsc/jsc_base.mm @@ -205,7 +205,8 @@ namespace NSJSBase } CJSContext::~CJSContext() { - m_internal->context = nil; + if (m_internal->context) + Dispose(); RELEASEOBJECT(m_internal); } diff --git a/DesktopEditor/doctrenderer/test/json/main.cpp b/DesktopEditor/doctrenderer/test/json/main.cpp index 03d03df1d3..30fb4eb1b4 100644 --- a/DesktopEditor/doctrenderer/test/json/main.cpp +++ b/DesktopEditor/doctrenderer/test/json/main.cpp @@ -216,12 +216,6 @@ public: return true; } - JSSmart getObject(const std::string& objLiteral) - { - JSSmart jsObj = m_pContext->runScript("(() => { return " + objLiteral + ";})();")->toObject(); - return jsObj; - } - public: JSSmart m_pContext; }; @@ -845,14 +839,13 @@ TEST_F(CJSONTest, serialization_with_script) " return 2;" " if (obj['parameters']['arr'][2][0] !== 42)" " return 3;" - " if (obj['parameters']['arr'][4] === undefined)" + " if (obj['parameters']['arr'][4] !== undefined)" " return 4;" - " if (obj['parameters']['0'] === 0)" + " if (obj['parameters']['0'] !== 0)" " return 5;" - " if (obj['parameters']['typedArr']['data'] === null)" + " if (obj['parameters']['typedArr']['data'] !== null)" " return 6;" " return 0;" -// " return JSON.stringify(obj, null, 4);" "}" ); @@ -863,11 +856,7 @@ TEST_F(CJSONTest, serialization_with_script) JSSmart jsCheckResult = global->call_func("test", 1, args); EXPECT_TRUE(jsCheckResult->isNumber()); -// EXPECT_EQ(jsCheckResult->toInt32(), 0); - - -// EXPECT_TRUE(jsCheckResult->isString()); -// std::cout << jsCheckResult->toStringA() << std::endl; + EXPECT_EQ(jsCheckResult->toInt32(), 0); EXPECT_TRUE(compare(obj, args[0])); }