1e509ee18Sopenharmony_ci/*
2e509ee18Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
3e509ee18Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4e509ee18Sopenharmony_ci * you may not use this file except in compliance with the License.
5e509ee18Sopenharmony_ci * You may obtain a copy of the License at
6e509ee18Sopenharmony_ci *
7e509ee18Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8e509ee18Sopenharmony_ci *
9e509ee18Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10e509ee18Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11e509ee18Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12e509ee18Sopenharmony_ci * See the License for the specific language governing permissions and
13e509ee18Sopenharmony_ci * limitations under the License.
14e509ee18Sopenharmony_ci */
15e509ee18Sopenharmony_ci
16e509ee18Sopenharmony_ci#ifndef ECMASCRIPT_TOOLING_TEST_TESTCASES_JS_MODULE_VARIABLE_TEST_H
17e509ee18Sopenharmony_ci#define ECMASCRIPT_TOOLING_TEST_TESTCASES_JS_MODULE_VARIABLE_TEST_H
18e509ee18Sopenharmony_ci
19e509ee18Sopenharmony_ci#include "tooling/test/client_utils/test_util.h"
20e509ee18Sopenharmony_ci
21e509ee18Sopenharmony_cinamespace panda::ecmascript::tooling::test {
22e509ee18Sopenharmony_ciclass JsModuleVariableTest : public TestActions {
23e509ee18Sopenharmony_cipublic:
24e509ee18Sopenharmony_ci    JsModuleVariableTest()
25e509ee18Sopenharmony_ci    {
26e509ee18Sopenharmony_ci        testAction = {
27e509ee18Sopenharmony_ci            {SocketAction::SEND, "enable"},
28e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, MatchRule::replySuccess},
29e509ee18Sopenharmony_ci            {SocketAction::SEND, "runtime-enable"},
30e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, MatchRule::replySuccess},
31e509ee18Sopenharmony_ci            {SocketAction::SEND, "run"},
32e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, MatchRule::replySuccess},
33e509ee18Sopenharmony_ci            // load export_variable_second.js
34e509ee18Sopenharmony_ci            {SocketAction::RECV, "Debugger.scriptParsed", ActionRule::STRING_CONTAIN},
35e509ee18Sopenharmony_ci            {SocketAction::RECV, "Debugger.paused", ActionRule::STRING_CONTAIN},
36e509ee18Sopenharmony_ci            {SocketAction::SEND, "resume"},
37e509ee18Sopenharmony_ci            {SocketAction::RECV, "Debugger.resumed", ActionRule::STRING_CONTAIN},
38e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, MatchRule::replySuccess},
39e509ee18Sopenharmony_ci            // load export_variable_first.js
40e509ee18Sopenharmony_ci            {SocketAction::RECV, "Debugger.scriptParsed", ActionRule::STRING_CONTAIN},
41e509ee18Sopenharmony_ci            {SocketAction::RECV, "Debugger.paused", ActionRule::STRING_CONTAIN},
42e509ee18Sopenharmony_ci            {SocketAction::SEND, "resume"},
43e509ee18Sopenharmony_ci            {SocketAction::RECV, "Debugger.resumed", ActionRule::STRING_CONTAIN},
44e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, MatchRule::replySuccess},
45e509ee18Sopenharmony_ci            // load module_variable.js
46e509ee18Sopenharmony_ci            {SocketAction::RECV, "Debugger.scriptParsed", ActionRule::STRING_CONTAIN},
47e509ee18Sopenharmony_ci            // break on start
48e509ee18Sopenharmony_ci            {SocketAction::RECV, "Debugger.paused", ActionRule::STRING_CONTAIN},
49e509ee18Sopenharmony_ci            // set breakpoint
50e509ee18Sopenharmony_ci            {SocketAction::SEND, "b " DEBUGGER_JS_DIR"module_variable.js 247"},
51e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, MatchRule::replySuccess},
52e509ee18Sopenharmony_ci
53e509ee18Sopenharmony_ci            {SocketAction::SEND, "resume"},
54e509ee18Sopenharmony_ci            {SocketAction::RECV, "Debugger.resumed", ActionRule::STRING_CONTAIN},
55e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, MatchRule::replySuccess},
56e509ee18Sopenharmony_ci            {SocketAction::RECV, "Debugger.paused", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
57e509ee18Sopenharmony_ci                std::unique_ptr<PtJson> json = PtJson::Parse(recv);
58e509ee18Sopenharmony_ci                Result ret;
59e509ee18Sopenharmony_ci                std::string method;
60e509ee18Sopenharmony_ci                ret = json->GetString("method", &method);
61e509ee18Sopenharmony_ci                if (ret != Result::SUCCESS || method != "Debugger.paused") {
62e509ee18Sopenharmony_ci                    return false;
63e509ee18Sopenharmony_ci                }
64e509ee18Sopenharmony_ci
65e509ee18Sopenharmony_ci                std::unique_ptr<PtJson> params = nullptr;
66e509ee18Sopenharmony_ci                ret = json->GetObject("params", &params);
67e509ee18Sopenharmony_ci                if (ret != Result::SUCCESS) {
68e509ee18Sopenharmony_ci                    return false;
69e509ee18Sopenharmony_ci                }
70e509ee18Sopenharmony_ci
71e509ee18Sopenharmony_ci                std::unique_ptr<PtJson> hitBreakpoints = nullptr;
72e509ee18Sopenharmony_ci                ret = params->GetArray("hitBreakpoints", &hitBreakpoints);
73e509ee18Sopenharmony_ci                if (ret != Result::SUCCESS) {
74e509ee18Sopenharmony_ci                    return false;
75e509ee18Sopenharmony_ci                }
76e509ee18Sopenharmony_ci
77e509ee18Sopenharmony_ci                std::string breakpoint;
78e509ee18Sopenharmony_ci                breakpoint = hitBreakpoints->Get(0)->GetString();
79e509ee18Sopenharmony_ci                if (ret != Result::SUCCESS || breakpoint.find(sourceFile_) == std::string::npos ||
80e509ee18Sopenharmony_ci                    breakpoint.find("246") == std::string::npos) {
81e509ee18Sopenharmony_ci                    return false;
82e509ee18Sopenharmony_ci                }
83e509ee18Sopenharmony_ci
84e509ee18Sopenharmony_ci                DebuggerClient debuggerClient(0);
85e509ee18Sopenharmony_ci                debuggerClient.PausedReply(std::move(json));
86e509ee18Sopenharmony_ci                return true;
87e509ee18Sopenharmony_ci            }},
88e509ee18Sopenharmony_ci
89e509ee18Sopenharmony_ci            {SocketAction::SEND, "p"},
90e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [] (auto recv, auto, auto) -> bool {
91e509ee18Sopenharmony_ci                std::unique_ptr<PtJson> json = PtJson::Parse(recv);
92e509ee18Sopenharmony_ci                std::unique_ptr<PtJson> result;
93e509ee18Sopenharmony_ci
94e509ee18Sopenharmony_ci                int id;
95e509ee18Sopenharmony_ci                Result ret = json->GetInt("id", &id);
96e509ee18Sopenharmony_ci                if (ret != Result::SUCCESS) {
97e509ee18Sopenharmony_ci                    return false;
98e509ee18Sopenharmony_ci                }
99e509ee18Sopenharmony_ci
100e509ee18Sopenharmony_ci                ret = json->GetObject("result", &result);
101e509ee18Sopenharmony_ci                if (ret != Result::SUCCESS) {
102e509ee18Sopenharmony_ci                    return false;
103e509ee18Sopenharmony_ci                }
104e509ee18Sopenharmony_ci
105e509ee18Sopenharmony_ci                std::unique_ptr<PtJson> innerResult;
106e509ee18Sopenharmony_ci                ret = result->GetArray("result", &innerResult);
107e509ee18Sopenharmony_ci                if (ret != Result::SUCCESS) {
108e509ee18Sopenharmony_ci                    return false;
109e509ee18Sopenharmony_ci                }
110e509ee18Sopenharmony_ci
111e509ee18Sopenharmony_ci                RuntimeClient runtimeClient(0);
112e509ee18Sopenharmony_ci                runtimeClient.HandleGetProperties(std::move(json), id);
113e509ee18Sopenharmony_ci                return true;
114e509ee18Sopenharmony_ci            }},
115e509ee18Sopenharmony_ci
116e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 3"},
117e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
118e509ee18Sopenharmony_ci                std::unique_ptr<PtJson> json = PtJson::Parse(recv);
119e509ee18Sopenharmony_ci                std::unique_ptr<PtJson> result;
120e509ee18Sopenharmony_ci
121e509ee18Sopenharmony_ci                int id;
122e509ee18Sopenharmony_ci                Result ret = json->GetInt("id", &id);
123e509ee18Sopenharmony_ci                if (ret != Result::SUCCESS) {
124e509ee18Sopenharmony_ci                    return false;
125e509ee18Sopenharmony_ci                }
126e509ee18Sopenharmony_ci
127e509ee18Sopenharmony_ci                ret = json->GetObject("result", &result);
128e509ee18Sopenharmony_ci                if (ret != Result::SUCCESS) {
129e509ee18Sopenharmony_ci                    return false;
130e509ee18Sopenharmony_ci                }
131e509ee18Sopenharmony_ci
132e509ee18Sopenharmony_ci                std::unique_ptr<PtJson> innerResult;
133e509ee18Sopenharmony_ci                ret = result->GetArray("result", &innerResult);
134e509ee18Sopenharmony_ci                if (ret != Result::SUCCESS) {
135e509ee18Sopenharmony_ci                    return false;
136e509ee18Sopenharmony_ci                }
137e509ee18Sopenharmony_ci
138e509ee18Sopenharmony_ci                std::vector<std::unique_ptr<PropertyDescriptor>> outPropertyDesc;
139e509ee18Sopenharmony_ci                for (int32_t i = 0; i < innerResult->GetSize(); i++) {
140e509ee18Sopenharmony_ci                    auto variableInfo = PropertyDescriptor::Create(*(innerResult->Get(i)));
141e509ee18Sopenharmony_ci                    outPropertyDesc.emplace_back(std::move(variableInfo));
142e509ee18Sopenharmony_ci                }
143e509ee18Sopenharmony_ci
144e509ee18Sopenharmony_ci                std::map<std::string, std::vector<std::string>> actualProperties;
145e509ee18Sopenharmony_ci                for (const auto &property : outPropertyDesc) {
146e509ee18Sopenharmony_ci                    std::vector<std::string> attributes;
147e509ee18Sopenharmony_ci                    RemoteObject *value = property->GetValue();
148e509ee18Sopenharmony_ci                    std::cout << " ============================== " << std::endl;
149e509ee18Sopenharmony_ci                    std::cout << "variableName: " << property->GetName() << std::endl;
150e509ee18Sopenharmony_ci                    PushValueInfo(value, attributes);
151e509ee18Sopenharmony_ci                    actualProperties[property->GetName()] = attributes;
152e509ee18Sopenharmony_ci                }
153e509ee18Sopenharmony_ci
154e509ee18Sopenharmony_ci                // compare size
155e509ee18Sopenharmony_ci                if (actualProperties.size() != moduleVariableMap_.size()) {
156e509ee18Sopenharmony_ci                    std::cout << "actualProperties.size() != moduleVariableMap_.size()" << std::endl;
157e509ee18Sopenharmony_ci                    std::cout << "actualProperties.size() is: " << actualProperties.size() << std::endl;
158e509ee18Sopenharmony_ci                    std::cout << "moduleVariableMap_.size() is: " << moduleVariableMap_.size() << std::endl;
159e509ee18Sopenharmony_ci                    return false;
160e509ee18Sopenharmony_ci                }
161e509ee18Sopenharmony_ci
162e509ee18Sopenharmony_ci                // compare the properties of each variable
163e509ee18Sopenharmony_ci                for (const auto &actualProperty : actualProperties) {
164e509ee18Sopenharmony_ci                    const std::string &variableName = actualProperty.first;
165e509ee18Sopenharmony_ci                    const std::vector<std::string> &actualAttributes = actualProperty.second;
166e509ee18Sopenharmony_ci
167e509ee18Sopenharmony_ci                    if (moduleVariableMap_.find(variableName) != moduleVariableMap_.end()) {
168e509ee18Sopenharmony_ci                        const std::vector<std::string> &expectedAttributes = moduleVariableMap_.at(variableName);
169e509ee18Sopenharmony_ci                        if (actualAttributes == expectedAttributes) {
170e509ee18Sopenharmony_ci                            continue;
171e509ee18Sopenharmony_ci                        } else {
172e509ee18Sopenharmony_ci                            std::cout << "Property mismatch: " << variableName << std::endl;
173e509ee18Sopenharmony_ci                            return false;
174e509ee18Sopenharmony_ci                        }
175e509ee18Sopenharmony_ci                    } else {
176e509ee18Sopenharmony_ci                        std::cout << "variable name not found: " << variableName << std::endl;
177e509ee18Sopenharmony_ci                        return false;
178e509ee18Sopenharmony_ci                    }
179e509ee18Sopenharmony_ci                }
180e509ee18Sopenharmony_ci
181e509ee18Sopenharmony_ci                RuntimeClient runtimeClient(0);
182e509ee18Sopenharmony_ci                runtimeClient.HandleGetProperties(std::move(json), id);
183e509ee18Sopenharmony_ci                return true;
184e509ee18Sopenharmony_ci            }},
185e509ee18Sopenharmony_ci
186e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 5"},
187e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
188e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
189e509ee18Sopenharmony_ci            }},
190e509ee18Sopenharmony_ci
191e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 6"},
192e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
193e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
194e509ee18Sopenharmony_ci            }},
195e509ee18Sopenharmony_ci
196e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 7"},
197e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
198e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
199e509ee18Sopenharmony_ci            }},
200e509ee18Sopenharmony_ci
201e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 10"},
202e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
203e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
204e509ee18Sopenharmony_ci            }},
205e509ee18Sopenharmony_ci
206e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 13"},
207e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
208e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
209e509ee18Sopenharmony_ci            }},
210e509ee18Sopenharmony_ci
211e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 16"},
212e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
213e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
214e509ee18Sopenharmony_ci            }},
215e509ee18Sopenharmony_ci
216e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 17"},
217e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
218e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
219e509ee18Sopenharmony_ci            }},
220e509ee18Sopenharmony_ci
221e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 20"},
222e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
223e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
224e509ee18Sopenharmony_ci            }},
225e509ee18Sopenharmony_ci
226e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 23"},
227e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
228e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
229e509ee18Sopenharmony_ci            }},
230e509ee18Sopenharmony_ci
231e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 26"},
232e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
233e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
234e509ee18Sopenharmony_ci            }},
235e509ee18Sopenharmony_ci
236e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 29"},
237e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
238e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
239e509ee18Sopenharmony_ci            }},
240e509ee18Sopenharmony_ci
241e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 32"},
242e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
243e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
244e509ee18Sopenharmony_ci            }},
245e509ee18Sopenharmony_ci
246e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 35"},
247e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
248e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
249e509ee18Sopenharmony_ci            }},
250e509ee18Sopenharmony_ci
251e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 38"},
252e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
253e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
254e509ee18Sopenharmony_ci            }},
255e509ee18Sopenharmony_ci
256e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 44"},
257e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
258e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
259e509ee18Sopenharmony_ci            }},
260e509ee18Sopenharmony_ci
261e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 50"},
262e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
263e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
264e509ee18Sopenharmony_ci            }},
265e509ee18Sopenharmony_ci
266e509ee18Sopenharmony_ci            {SocketAction::SEND, "p 91"},
267e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, [this] (auto recv, auto, auto) -> bool {
268e509ee18Sopenharmony_ci                return CompareExpected(recv, innerDes[expectDesIndex]);
269e509ee18Sopenharmony_ci            }},
270e509ee18Sopenharmony_ci
271e509ee18Sopenharmony_ci            // reply success and run
272e509ee18Sopenharmony_ci            {SocketAction::SEND, "success"},
273e509ee18Sopenharmony_ci            {SocketAction::SEND, "resume"},
274e509ee18Sopenharmony_ci            {SocketAction::RECV, "Debugger.resumed", ActionRule::STRING_CONTAIN},
275e509ee18Sopenharmony_ci            {SocketAction::RECV, "", ActionRule::CUSTOM_RULE, MatchRule::replySuccess},
276e509ee18Sopenharmony_ci        };
277e509ee18Sopenharmony_ci    }
278e509ee18Sopenharmony_ci
279e509ee18Sopenharmony_ci    std::pair<std::string, std::string> GetEntryPoint() override
280e509ee18Sopenharmony_ci    {
281e509ee18Sopenharmony_ci        return {pandaFile_, entryPoint_};
282e509ee18Sopenharmony_ci    }
283e509ee18Sopenharmony_ci    ~JsModuleVariableTest() = default;
284e509ee18Sopenharmony_ci
285e509ee18Sopenharmony_ciprivate:
286e509ee18Sopenharmony_ci    std::string pandaFile_ = DEBUGGER_ABC_DIR "module_variable.abc";
287e509ee18Sopenharmony_ci    std::string sourceFile_ = DEBUGGER_JS_DIR "module_variable.js";
288e509ee18Sopenharmony_ci    std::string entryPoint_ = "module_variable";
289e509ee18Sopenharmony_ci    size_t expectDesIndex = 0;
290e509ee18Sopenharmony_ci
291e509ee18Sopenharmony_ci    void PushValueInfo(RemoteObject *value, std::vector<std::string> &infos)
292e509ee18Sopenharmony_ci    {
293e509ee18Sopenharmony_ci        std::cout << "type: " << value->GetType() << std::endl;
294e509ee18Sopenharmony_ci        infos.push_back(value->GetType());
295e509ee18Sopenharmony_ci        if (value->HasSubType()) {
296e509ee18Sopenharmony_ci            std::cout << "sub type: " << value->GetSubType() << std::endl;
297e509ee18Sopenharmony_ci            infos.push_back(value->GetSubType());
298e509ee18Sopenharmony_ci        }
299e509ee18Sopenharmony_ci        if (value->HasClassName()) {
300e509ee18Sopenharmony_ci            std::cout << "class name: " << value->GetClassName() << std::endl;
301e509ee18Sopenharmony_ci            infos.push_back(value->GetClassName());
302e509ee18Sopenharmony_ci        }
303e509ee18Sopenharmony_ci        if (value->HasUnserializableValue()) {
304e509ee18Sopenharmony_ci            std::cout << "unserializableValue: " << value->GetUnserializableValue() << std::endl;
305e509ee18Sopenharmony_ci            infos.push_back(value->GetUnserializableValue());
306e509ee18Sopenharmony_ci        }
307e509ee18Sopenharmony_ci        if (value->HasDescription()) {
308e509ee18Sopenharmony_ci            std::cout << "desc: " << value->GetDescription() << std::endl;
309e509ee18Sopenharmony_ci            infos.push_back(value->GetDescription());
310e509ee18Sopenharmony_ci        }
311e509ee18Sopenharmony_ci    }
312e509ee18Sopenharmony_ci
313e509ee18Sopenharmony_ci    bool CompareExpected(std::string recv, const std::string &expect)
314e509ee18Sopenharmony_ci    {
315e509ee18Sopenharmony_ci        expectDesIndex++;
316e509ee18Sopenharmony_ci        return recv == expect;
317e509ee18Sopenharmony_ci    }
318e509ee18Sopenharmony_ci
319e509ee18Sopenharmony_ci    const std::map<std::string, std::vector<std::string>> moduleVariableMap_ = {
320e509ee18Sopenharmony_ci        { "string0", { "string", "helloworld", "helloworld" } },
321e509ee18Sopenharmony_ci        { "boolean0", { "object", "Object", "Boolean{[[PrimitiveValue]]: false}",
322e509ee18Sopenharmony_ci            "Boolean{[[PrimitiveValue]]: false}"} },
323e509ee18Sopenharmony_ci        { "number0", { "number", "1", "1" } },
324e509ee18Sopenharmony_ci        { "obj0", { "object", "Object", "Object", "Object"} },
325e509ee18Sopenharmony_ci        { "arraybuffer0", { "object", "arraybuffer", "Arraybuffer", "Arraybuffer(24)", "Arraybuffer(24)"} },
326e509ee18Sopenharmony_ci        { "function0", { "function", "Function", "function function0( { [js code] }",
327e509ee18Sopenharmony_ci            "function function0( { [js code] }" } },
328e509ee18Sopenharmony_ci        { "generator0", { "function", "Generator", "function* generator0( { [js code] }",
329e509ee18Sopenharmony_ci            "function* generator0( { [js code] }" } },
330e509ee18Sopenharmony_ci        { "map0", { "object", "map", "Map", "Map(0)", "Map(0)"} },
331e509ee18Sopenharmony_ci        { "set0", { "object", "set", "Set", "Set(0)", "Set(0)"} },
332e509ee18Sopenharmony_ci        { "undefined0", { "undefined" } },
333e509ee18Sopenharmony_ci        { "array0", { "object", "array", "Array", "Array(2)", "Array(2)"} },
334e509ee18Sopenharmony_ci        { "regexp0", { "object", "regexp", "RegExp", "/^\\d+\\.\\d+$/i", "/^\\d+\\.\\d+$/i"} },
335e509ee18Sopenharmony_ci        { "uint8array0", { "object", "Object", "Uint8Array(24)", "Uint8Array(24)"} },
336e509ee18Sopenharmony_ci        { "dataview0", { "object", "dataview", "Dataview", "DataView(24)", "DataView(24)"} },
337e509ee18Sopenharmony_ci        { "bigint0", { "bigint", "999n", "999n" } },
338e509ee18Sopenharmony_ci        { "typedarray0", { "object", "Object", "Uint8Array(0)", "Uint8Array(0)"} },
339e509ee18Sopenharmony_ci        { "sharedarraybuffer0", { "object", "Object", "SharedArrayBuffer(32)", "SharedArrayBuffer(32)"} },
340e509ee18Sopenharmony_ci        { "weakref0", { "object", "Object", "WeakRef {}", "WeakRef {}"} },
341e509ee18Sopenharmony_ci        { "iterator0", { "function", "Function", "function [Symbol.iterator]( { [native code] }",
342e509ee18Sopenharmony_ci            "function [Symbol.iterator]( { [native code] }" } },
343e509ee18Sopenharmony_ci        { "string1", { "string", "helloworld1", "helloworld1" } },
344e509ee18Sopenharmony_ci        { "boolean1", { "object", "Object", "Boolean{[[PrimitiveValue]]: false}",
345e509ee18Sopenharmony_ci            "Boolean{[[PrimitiveValue]]: false}"} },
346e509ee18Sopenharmony_ci        { "number1", { "number", "11", "11" } },
347e509ee18Sopenharmony_ci        { "obj1", { "object", "Object", "Object", "Object"} },
348e509ee18Sopenharmony_ci        { "arraybuffer1", { "object", "arraybuffer", "Arraybuffer", "Arraybuffer(24)", "Arraybuffer(24)"} },
349e509ee18Sopenharmony_ci        { "function1", { "function", "Function", "function function1( { [js code] }",
350e509ee18Sopenharmony_ci            "function function1( { [js code] }" } },
351e509ee18Sopenharmony_ci        { "generator1", { "function", "Generator", "function* generator1( { [js code] }",
352e509ee18Sopenharmony_ci            "function* generator1( { [js code] }" } },
353e509ee18Sopenharmony_ci        { "map1", { "object", "map", "Map", "Map(0)", "Map(0)"} },
354e509ee18Sopenharmony_ci        { "set1", { "object", "set", "Set", "Set(0)", "Set(0)"} },
355e509ee18Sopenharmony_ci        { "undefined1", { "undefined" } },
356e509ee18Sopenharmony_ci        { "regexp1", { "object", "regexp", "RegExp", "/^\\d+\\.\\d+$/i", "/^\\d+\\.\\d+$/i"} },
357e509ee18Sopenharmony_ci        { "uint8array1", { "object", "Object", "Uint8Array(24)", "Uint8Array(24)"} },
358e509ee18Sopenharmony_ci        { "dataview1", { "object", "dataview", "Dataview", "DataView(24)", "DataView(24)"} },
359e509ee18Sopenharmony_ci        { "bigint1", { "bigint", "9999n", "9999n" } },
360e509ee18Sopenharmony_ci        { "typedarray1", { "object", "Object", "Uint8Array(0)", "Uint8Array(0)"} },
361e509ee18Sopenharmony_ci        { "sharedarraybuffer1", { "object", "Object", "SharedArrayBuffer(32)", "SharedArrayBuffer(32)"} },
362e509ee18Sopenharmony_ci        { "weakref1", { "object", "Object", "WeakRef {}", "WeakRef {}"} },
363e509ee18Sopenharmony_ci        { "iterator1", { "function", "Function", "function [Symbol.iterator]( { [native code] }",
364e509ee18Sopenharmony_ci            "function [Symbol.iterator]( { [native code] }" } },
365e509ee18Sopenharmony_ci        { "string2", { "string", "helloworld11", "helloworld11" } },
366e509ee18Sopenharmony_ci        { "boolean2", { "object", "Object", "Boolean{[[PrimitiveValue]]: false}",
367e509ee18Sopenharmony_ci            "Boolean{[[PrimitiveValue]]: false}"} },
368e509ee18Sopenharmony_ci        { "number2", { "number", "111", "111" } },
369e509ee18Sopenharmony_ci        { "obj2", { "object", "Object", "Object", "Object"} },
370e509ee18Sopenharmony_ci        { "arraybuffer2", { "object", "arraybuffer", "Arraybuffer", "Arraybuffer(24)", "Arraybuffer(24)"} },
371e509ee18Sopenharmony_ci        { "function2", { "function", "Function", "function function2( { [js code] }",
372e509ee18Sopenharmony_ci            "function function2( { [js code] }" } },
373e509ee18Sopenharmony_ci        { "generator2", { "function", "Generator", "function* generator2( { [js code] }",
374e509ee18Sopenharmony_ci            "function* generator2( { [js code] }" } },
375e509ee18Sopenharmony_ci        { "map2", { "object", "map", "Map", "Map(0)", "Map(0)"} },
376e509ee18Sopenharmony_ci        { "set2", { "object", "set", "Set", "Set(0)", "Set(0)"} },
377e509ee18Sopenharmony_ci        { "undefined2", { "undefined" } },
378e509ee18Sopenharmony_ci        { "regexp2", { "object", "regexp", "RegExp", "/^\\d+\\.\\d+$/i", "/^\\d+\\.\\d+$/i"} },
379e509ee18Sopenharmony_ci        { "uint8array2", { "object", "Object", "Uint8Array(24)", "Uint8Array(24)"} },
380e509ee18Sopenharmony_ci        { "dataview2", { "object", "dataview", "Dataview", "DataView(24)", "DataView(24)"} },
381e509ee18Sopenharmony_ci        { "bigint2", { "bigint", "9999n", "9999n" } },
382e509ee18Sopenharmony_ci        { "typedarray2", { "object", "Object", "Uint8Array(0)", "Uint8Array(0)"} },
383e509ee18Sopenharmony_ci        { "sharedarraybuffer2", { "object", "Object", "SharedArrayBuffer(32)", "SharedArrayBuffer(32)"} },
384e509ee18Sopenharmony_ci        { "weakref2", { "object", "Object", "WeakRef {}", "WeakRef {}"} },
385e509ee18Sopenharmony_ci        { "iterator2", { "function", "Function", "function [Symbol.iterator]( { [native code] }",
386e509ee18Sopenharmony_ci            "function [Symbol.iterator]( { [native code] }" } },
387e509ee18Sopenharmony_ci        { "string4", { "string", "helloworld123", "helloworld123" } },
388e509ee18Sopenharmony_ci        { "boolean4", { "object", "Object", "Boolean{[[PrimitiveValue]]: true}", "Boolean{[[PrimitiveValue]]: true}"} },
389e509ee18Sopenharmony_ci        { "number4", { "number", "4", "4" } },
390e509ee18Sopenharmony_ci        { "foo", { "function", "Function", "function foo( { [js code] }", "function foo( { [js code] }"} },
391e509ee18Sopenharmony_ci        { "string6", { "string", "helloworld12345", "helloworld12345" } },
392e509ee18Sopenharmony_ci        { "boolean6", { "object", "Object", "Boolean{[[PrimitiveValue]]: true}", "Boolean{[[PrimitiveValue]]: true}"} },
393e509ee18Sopenharmony_ci        { "number6", { "number", "6", "6" } },
394e509ee18Sopenharmony_ci        { "obj6", { "object", "Object", "Object", "Object"} },
395e509ee18Sopenharmony_ci        { "arraybuffer6", { "object", "arraybuffer", "Arraybuffer", "Arraybuffer(24)", "Arraybuffer(24)"} },
396e509ee18Sopenharmony_ci        { "function6", { "function", "Function", "function function6( { [js code] }",
397e509ee18Sopenharmony_ci            "function function6( { [js code] }" } },
398e509ee18Sopenharmony_ci        { "generator6", { "function", "Generator", "function* generator6( { [js code] }",
399e509ee18Sopenharmony_ci            "function* generator6( { [js code] }" } },
400e509ee18Sopenharmony_ci        { "map6", { "object", "map", "Map", "Map(0)", "Map(0)"} },
401e509ee18Sopenharmony_ci        { "set6", { "object", "set", "Set", "Set(0)", "Set(0)"} },
402e509ee18Sopenharmony_ci        { "undefined6", { "undefined" } },
403e509ee18Sopenharmony_ci        { "array6", { "object", "array", "Array", "Array(2)", "Array(2)"} },
404e509ee18Sopenharmony_ci        { "regexp6", { "object", "regexp", "RegExp", "/^\\d+\\.\\d+$/i", "/^\\d+\\.\\d+$/i"} },
405e509ee18Sopenharmony_ci        { "uint8array6", { "object", "Object", "Uint8Array(24)", "Uint8Array(24)"} },
406e509ee18Sopenharmony_ci        { "dataview6", { "object", "dataview", "Dataview", "DataView(23)", "DataView(23)"} },
407e509ee18Sopenharmony_ci        { "bigint6", { "bigint", "99999n", "99999n" } },
408e509ee18Sopenharmony_ci        { "string7", { "string", "helloworld12345", "helloworld12345" } },
409e509ee18Sopenharmony_ci        { "boolean7", { "object", "Object", "Boolean{[[PrimitiveValue]]: true}", "Boolean{[[PrimitiveValue]]: true}"} },
410e509ee18Sopenharmony_ci        { "number7", { "number", "6", "6" } },
411e509ee18Sopenharmony_ci        { "obj7", { "object", "Object", "Object", "Object"} },
412e509ee18Sopenharmony_ci        { "arraybuffer7", { "object", "arraybuffer", "Arraybuffer", "Arraybuffer(24)", "Arraybuffer(24)"} },
413e509ee18Sopenharmony_ci        { "function7", { "function", "Function", "function function6( { [js code] }",
414e509ee18Sopenharmony_ci            "function function6( { [js code] }" } },
415e509ee18Sopenharmony_ci        { "generator7", { "function", "Generator", "function* generator6( { [js code] }",
416e509ee18Sopenharmony_ci            "function* generator6( { [js code] }" } },
417e509ee18Sopenharmony_ci        { "map7", { "object", "map", "Map", "Map(0)", "Map(0)"} },
418e509ee18Sopenharmony_ci        { "set7", { "object", "set", "Set", "Set(0)", "Set(0)"} },
419e509ee18Sopenharmony_ci        { "undefined7", { "undefined" } },
420e509ee18Sopenharmony_ci        { "array7", { "object", "array", "Array", "Array(2)", "Array(2)"} },
421e509ee18Sopenharmony_ci        { "regexp7", { "object", "regexp", "RegExp", "/^\\d+\\.\\d+$/i", "/^\\d+\\.\\d+$/i"} },
422e509ee18Sopenharmony_ci        { "uint8array7", { "object", "Object", "Uint8Array(24)", "Uint8Array(24)"} },
423e509ee18Sopenharmony_ci        { "dataview7", { "object", "dataview", "Dataview", "DataView(23)", "DataView(23)"} },
424e509ee18Sopenharmony_ci        { "bigint7", { "bigint", "99999n", "99999n" } },
425e509ee18Sopenharmony_ci        { "string9", { "string", "helloworld11", "helloworld11" } },
426e509ee18Sopenharmony_ci        { "boolean9", { "object", "Object", "Boolean{[[PrimitiveValue]]: false}",
427e509ee18Sopenharmony_ci            "Boolean{[[PrimitiveValue]]: false}"} },
428e509ee18Sopenharmony_ci        { "number9", { "number", "111", "111" } },
429e509ee18Sopenharmony_ci        { "obj9", { "object", "Object", "Object", "Object"} },
430e509ee18Sopenharmony_ci        { "arraybuffer9", { "object", "arraybuffer", "Arraybuffer", "Arraybuffer(24)", "Arraybuffer(24)"} },
431e509ee18Sopenharmony_ci        { "function9", { "function", "Function", "function function8( { [js code] }",
432e509ee18Sopenharmony_ci            "function function8( { [js code] }" } },
433e509ee18Sopenharmony_ci        { "generator9", { "function", "Generator", "function* generator8( { [js code] }",
434e509ee18Sopenharmony_ci            "function* generator8( { [js code] }" } },
435e509ee18Sopenharmony_ci        { "map9", { "object", "map", "Map", "Map(0)", "Map(0)"} },
436e509ee18Sopenharmony_ci        { "set9", { "object", "set", "Set", "Set(0)", "Set(0)"} },
437e509ee18Sopenharmony_ci        { "undefined9", { "undefined" } },
438e509ee18Sopenharmony_ci        { "array9", { "object", "array", "Array", "Array(2)", "Array(2)"} },
439e509ee18Sopenharmony_ci        { "regexp9", { "object", "regexp", "RegExp", "/^\\d+\\.\\d+$/i", "/^\\d+\\.\\d+$/i"} },
440e509ee18Sopenharmony_ci        { "uint8array9", { "object", "Object", "Uint8Array(24)", "Uint8Array(24)"} },
441e509ee18Sopenharmony_ci        { "dataview9", { "object", "dataview", "Dataview", "DataView(24)", "DataView(24)"} },
442e509ee18Sopenharmony_ci        { "bigint9", { "bigint", "9999n", "9999n" } },
443e509ee18Sopenharmony_ci        { "string2", { "string", "helloworld11", "helloworld11" } },
444e509ee18Sopenharmony_ci        { "boolean10", { "object", "Object", "Boolean{[[PrimitiveValue]]: false}",
445e509ee18Sopenharmony_ci            "Boolean{[[PrimitiveValue]]: false}"} },
446e509ee18Sopenharmony_ci        { "string10", { "string", "helloworld11", "helloworld11" } },
447e509ee18Sopenharmony_ci        { "number10", { "number", "111", "111" } },
448e509ee18Sopenharmony_ci        { "obj10", { "object", "Object", "Object", "Object"} },
449e509ee18Sopenharmony_ci        { "arraybuffer10", { "object", "arraybuffer", "Arraybuffer", "Arraybuffer(24)", "Arraybuffer(24)"} },
450e509ee18Sopenharmony_ci        { "function10", { "function", "Function", "function function8( { [js code] }",
451e509ee18Sopenharmony_ci            "function function8( { [js code] }" } },
452e509ee18Sopenharmony_ci        { "generator10", { "function", "Generator", "function* generator8( { [js code] }",
453e509ee18Sopenharmony_ci            "function* generator8( { [js code] }" } },
454e509ee18Sopenharmony_ci        { "map10", { "object", "map", "Map", "Map(0)", "Map(0)"} },
455e509ee18Sopenharmony_ci        { "set10", { "object", "set", "Set", "Set(0)", "Set(0)"} },
456e509ee18Sopenharmony_ci        { "undefined10", { "undefined" } },
457e509ee18Sopenharmony_ci        { "array10", { "object", "array", "Array", "Array(2)", "Array(2)"} },
458e509ee18Sopenharmony_ci        { "regexp10", { "object", "regexp", "RegExp", "/^\\d+\\.\\d+$/i", "/^\\d+\\.\\d+$/i"} },
459e509ee18Sopenharmony_ci        { "uint8array10", { "object", "Object", "Uint8Array(24)", "Uint8Array(24)"} },
460e509ee18Sopenharmony_ci        { "dataview10", { "object", "dataview", "Dataview", "DataView(24)", "DataView(24)"} },
461e509ee18Sopenharmony_ci        { "bigint10", { "bigint", "9999n", "9999n" } },
462e509ee18Sopenharmony_ci        { "transit1", { "number", "1", "1" } },
463e509ee18Sopenharmony_ci        { "transit2", { "number", "2", "2" } },
464e509ee18Sopenharmony_ci        { "transit4", { "number", "3", "3" } },
465e509ee18Sopenharmony_ci        { "transit5", { "number", "1", "1" } },
466e509ee18Sopenharmony_ci        { "transit6", { "number", "2", "2" } },
467e509ee18Sopenharmony_ci        { "transit7", { "number", "3", "3" } },
468e509ee18Sopenharmony_ci        { "multipleOut1", { "number", "1", "1" } },
469e509ee18Sopenharmony_ci        { "multipleOut2", { "number", "2", "2" } },
470e509ee18Sopenharmony_ci        { "multipleOut3", { "number", "3", "3" } },
471e509ee18Sopenharmony_ci        { "multipleOut4", { "number", "4", "4" } },
472e509ee18Sopenharmony_ci        { "multipleOut5", { "number", "5", "5" } },
473e509ee18Sopenharmony_ci        { "multipleOut6", { "number", "6", "6" } },
474e509ee18Sopenharmony_ci        { "multipleOut10", { "number", "10", "10" } },
475e509ee18Sopenharmony_ci        { "multipleOut11", { "number", "11", "11" } },
476e509ee18Sopenharmony_ci        { "multipleOut12", { "number", "12", "12" } },
477e509ee18Sopenharmony_ci        { "*default*", { "function", "Function", "function default( { [js code] }",
478e509ee18Sopenharmony_ci            "function default( { [js code] }" } },
479e509ee18Sopenharmony_ci        {"obj", { "object", "Object", "Object",  "Object"}}
480e509ee18Sopenharmony_ci    };
481e509ee18Sopenharmony_ci
482e509ee18Sopenharmony_ci    const std::vector<std::string> innerDes = {
483e509ee18Sopenharmony_ci        "{\"id\":10,\"result\":{\"result\":[{\"name\":\"length\",\"value\":{\"type\":\"number\",\"unserializableValue\""
484e509ee18Sopenharmony_ci        ":\"0\",\"description\":\"0\"},\"writable\":false,\"configurable\":true,\"enumerable\":false,\"isOwn\":true},{"
485e509ee18Sopenharmony_ci        "\"name\":\"name\",\"value\":{\"type\":\"string\",\"unserializableValue\":\"default\",\"description\":"
486e509ee18Sopenharmony_ci        "\"default\"},\"writable\":false,\"configurable\":true,\"enumerable\":false,\"isOwn\":true},{\"name\":"
487e509ee18Sopenharmony_ci        "\"prototype\",\"value\":{\"type\":\"object\",\"className\":\"Object\",\"unserializableValue\":\"Object\","
488e509ee18Sopenharmony_ci        "\"description\":\"Object\",\"objectId\":\"100\"},\"writable\":true,\"configurable\":false,\"enumerable\":"
489e509ee18Sopenharmony_ci        "false,\"isOwn\":true}]}}",
490e509ee18Sopenharmony_ci
491e509ee18Sopenharmony_ci        "{\"id\":11,\"result\":{\"result\":[{\"name\":\"0\",\"value\":{\"type\":\"string\",\"unserializableValue\":"
492e509ee18Sopenharmony_ci        "\"Apple\",\"description\":\"Apple\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":"
493e509ee18Sopenharmony_ci        "true},{\"name\":\"1\",\"value\":{\"type\":\"string\",\"unserializableValue\":\"Banana\",\"description\":"
494e509ee18Sopenharmony_ci        "\"Banana\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"length\","
495e509ee18Sopenharmony_ci        "\"value\":{\"type\":\"number\",\"unserializableValue\":\"2\",\"description\":\"2\"},\"writable\":true,"
496e509ee18Sopenharmony_ci        "\"configurable\":false,\"enumerable\":false,\"isOwn\":true}]}}",
497e509ee18Sopenharmony_ci
498e509ee18Sopenharmony_ci        "{\"id\":12,\"result\":{\"result\":[{\"name\":\"[[Int8Array]]\",\"value\":{\"type\":\"object\",\"className\":"
499e509ee18Sopenharmony_ci        "\"Object\",\"unserializableValue\":\"Int8Array(24)\",\"description\":\"Int8Array(24)\",\"objectId\":\"101\"},"
500e509ee18Sopenharmony_ci        "\"writable\":true,\"configurable\":true,\"enumerable\":false,\"isOwn\":true},{\"name\":\"[[Uint8Array]]\","
501e509ee18Sopenharmony_ci        "\"value\":{\"type\":\"object\",\"className\":\"Object\",\"unserializableValue\":\"Uint8Array(24)\","
502e509ee18Sopenharmony_ci        "\"description\":\"Uint8Array(24)\",\"objectId\":\"102\"},\"writable\":true,\"configurable\":true,"
503e509ee18Sopenharmony_ci        "\"enumerable\":false,\"isOwn\":true},{\"name\":\"[[Uint8ClampedArray]]\",\"value\":{\"type\":\"object\","
504e509ee18Sopenharmony_ci        "\"className\":\"Object\",\"unserializableValue\":"
505e509ee18Sopenharmony_ci        "\"Uint8ClampedArray\",\"description\":\"Uint8ClampedArray\",\"objectId\":\"103\"},"
506e509ee18Sopenharmony_ci        "\"writable\":true,\"configurable\":true,\"enumerable\":false,\"isOwn\":true},{\"name\":\"[[Int16Array]]\","
507e509ee18Sopenharmony_ci        "\"value\":{\"type\":\"object\",\"className\":\"Object\",\"unserializableValue\":\"Int16Array(12)\","
508e509ee18Sopenharmony_ci        "\"description\":\"Int16Array(12)\",\"objectId\":\"104\"},\"writable\":true,\"configurable\":true,"
509e509ee18Sopenharmony_ci        "\"enumerable\":false,\"isOwn\":true},{\"name\":\"[[Uint16Array]]\",\"value\":{\"type\":\"object\","
510e509ee18Sopenharmony_ci        "\"className\":\"Object\",\"unserializableValue\":\"Uint16Array\",\"description\":\"Uint16Array\",\"objectId\":"
511e509ee18Sopenharmony_ci        "\"105\"},\"writable\":true,\"configurable\":true,\"enumerable\":false,\"isOwn\":true},{\"name\":"
512e509ee18Sopenharmony_ci        "\"[[Int32Array]]\",\"value\":{\"type\":\"object\",\"className\":\"Object\",\"unserializableValue\":"
513e509ee18Sopenharmony_ci        "\"Int32Array(6)\",\"description\":\"Int32Array(6)\",\"objectId\":\"106\"},\"writable\":true,\"configurable\":"
514e509ee18Sopenharmony_ci        "true,\"enumerable\":false,\"isOwn\":true},{\"name\":\"[[Uint32Array]]\",\"value\":{\"type\":\"object\","
515e509ee18Sopenharmony_ci        "\"className\":\"Object\",\"unserializableValue\":\"Uint32Array\","
516e509ee18Sopenharmony_ci        "\"description\":\"Uint32Array\",\"objectId\":\"107\"},"
517e509ee18Sopenharmony_ci        "\"writable\":true,\"configurable\":true,\"enumerable\":false,\"isOwn\":true},{\"name\":\"[[Float32Array]]\","
518e509ee18Sopenharmony_ci        "\"value\":{\"type\":\"object\",\"className\":\"Object\","
519e509ee18Sopenharmony_ci        "\"unserializableValue\":\"Float32Array\",\"description\":"
520e509ee18Sopenharmony_ci        "\"Float32Array\",\"objectId\":\"108\"},\"writable\":"
521e509ee18Sopenharmony_ci        "true,\"configurable\":true,\"enumerable\":false,\"isOwn\":true},"
522e509ee18Sopenharmony_ci        "{\"name\":\"[[Float64Array]]\",\"value\":{\"type\":\"object\",\"className\":\"Object\","
523e509ee18Sopenharmony_ci        "\"unserializableValue\":\"Float64Array\",\"description\":"
524e509ee18Sopenharmony_ci        "\"Float64Array\",\"objectId\":\"109\"},\"writable\":true,"
525e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":false,\"isOwn\":true},{\"name\":\"[[BigInt64Array]]\",\"value\":"
526e509ee18Sopenharmony_ci        "{\"type\":\"object\",\"className\":\"Object\",\"unserializableValue\":"
527e509ee18Sopenharmony_ci        "\"BigInt64Array\",\"description\":\"BigInt64Array\","
528e509ee18Sopenharmony_ci        "\"objectId\":\"110\"},\"writable\":true,\"configurable\":true,\"enumerable\":false,\"isOwn\":true},{\"name\":"
529e509ee18Sopenharmony_ci        "\"[[BigUint64Array]]\",\"value\":{\"type\":\"object\",\"className\":\"Object\",\"unserializableValue\":"
530e509ee18Sopenharmony_ci        "\"BigUint64Array\",\"description\":\"BigUint64Array\","
531e509ee18Sopenharmony_ci        "\"objectId\":\"111\"},\"writable\":true,\"configurable\":true,"
532e509ee18Sopenharmony_ci        "\"enumerable\":false,\"isOwn\":true}]}}",
533e509ee18Sopenharmony_ci
534e509ee18Sopenharmony_ci        "{\"id\":13,\"result\":{\"result\":[{\"name\":\"[[PrimitiveValue]]\",\"value\":{\"type\":\"boolean\","
535e509ee18Sopenharmony_ci        "\"unserializableValue\":\"false\",\"description\":\"false\",\"objectId\":\"112\"},\"writable\":false,"
536e509ee18Sopenharmony_ci        "\"configurable\":false,\"enumerable\":false,\"isOwn\":false}]}}",
537e509ee18Sopenharmony_ci
538e509ee18Sopenharmony_ci        "{\"id\":14,\"result\":{\"result\":[{\"name\":\"buffer\",\"value\":{\"type\":\"object\",\"subtype\":"
539e509ee18Sopenharmony_ci        "\"arraybuffer\",\"className\":\"Arraybuffer\",\"unserializableValue\":\"Arraybuffer(24)\",\"description\":"
540e509ee18Sopenharmony_ci        "\"Arraybuffer(24)\",\"objectId\":\"113\"},\"writable\":false,\"configurable\":false,\"enumerable\":false,"
541e509ee18Sopenharmony_ci        "\"isOwn\":false},{\"name\":\"byteLength\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"24\","
542e509ee18Sopenharmony_ci        "\"description\":\"24\",\"objectId\":\"114\"},\"writable\":false,\"configurable\":false,\"enumerable\":false,"
543e509ee18Sopenharmony_ci        "\"isOwn\":false},{\"name\":\"byteOffset\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
544e509ee18Sopenharmony_ci        "\"description\":\"0\",\"objectId\":\"115\"},\"writable\":false,\"configurable\":false,\"enumerable\":false,"
545e509ee18Sopenharmony_ci        "\"isOwn\":false}]}}",
546e509ee18Sopenharmony_ci
547e509ee18Sopenharmony_ci        "{\"id\":15,\"result\":{\"result\":[{\"name\":\"length\",\"value\":{\"type\":\"number\","
548e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":false,\"configurable\":true,\"enumerable\":"
549e509ee18Sopenharmony_ci        "false,\"isOwn\":true},{\"name\":\"name\",\"value\":{\"type\":\"string\",\"unserializableValue\":\"foo\","
550e509ee18Sopenharmony_ci        "\"description\":\"foo\"},\"writable\":false,\"configurable\":true,\"enumerable\":false,\"isOwn\":true},"
551e509ee18Sopenharmony_ci        "{\"name\":\"prototype\",\"value\":{\"type\":\"object\",\"className\":\"Object\",\"unserializableValue\":"
552e509ee18Sopenharmony_ci        "\"Object\",\"description\":\"Object\",\"objectId\":\"116\"},\"writable\":true,\"configurable\":false,"
553e509ee18Sopenharmony_ci        "\"enumerable\":false,\"isOwn\":true}]}}",
554e509ee18Sopenharmony_ci
555e509ee18Sopenharmony_ci        "{\"id\":16,\"result\":{\"result\":[{\"name\":\"length\",\"value\":{\"type\":\"number\","
556e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":false,\"configurable\":true,\"enumerable\":"
557e509ee18Sopenharmony_ci        "false,\"isOwn\":true},{\"name\":\"name\",\"value\":{\"type\":\"string\",\"unserializableValue\":\"function0\","
558e509ee18Sopenharmony_ci        "\"description\":\"function0\"},\"writable\":false,\"configurable\":true,\"enumerable\":false,\"isOwn\":true},"
559e509ee18Sopenharmony_ci        "{\"name\":\"prototype\",\"value\":{\"type\":\"object\",\"className\":\"Object\",\"unserializableValue\":"
560e509ee18Sopenharmony_ci        "\"Object\",\"description\":\"Object\",\"objectId\":\"117\"},\"writable\":true,\"configurable\":false,"
561e509ee18Sopenharmony_ci        "\"enumerable\":false,\"isOwn\":true}]}}",
562e509ee18Sopenharmony_ci
563e509ee18Sopenharmony_ci        "{\"id\":17,\"result\":{\"result\":[{\"name\":\"[[IsGenerator]]\",\"value\":{\"type\":\"boolean\","
564e509ee18Sopenharmony_ci        "\"unserializableValue\":\"true\",\"description\":\"true\",\"objectId\":\"118\"},\"writable\":false,"
565e509ee18Sopenharmony_ci        "\"configurable\":false,\"enumerable\":false,\"isOwn\":false},{\"name\":\"length\",\"value\":{\"type\":"
566e509ee18Sopenharmony_ci        "\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":false,\"configurable\":true,"
567e509ee18Sopenharmony_ci        "\"enumerable\":false,\"isOwn\":true},{\"name\":\"name\",\"value\":{\"type\":\"string\","
568e509ee18Sopenharmony_ci        "\"unserializableValue\":\"generator0\",\"description\":\"generator0\"},\"writable\":false,\"configurable\":"
569e509ee18Sopenharmony_ci        "true,\"enumerable\":false,\"isOwn\":true},{\"name\":\"prototype\",\"value\":{\"type\":\"object\","
570e509ee18Sopenharmony_ci        "\"className\":\"Object\",\"unserializableValue\":\"Object\",\"description\":\"Object\",\"objectId\":\"119\"},"
571e509ee18Sopenharmony_ci        "\"writable\":true,\"configurable\":false,\"enumerable\":false,\"isOwn\":true}]}}",
572e509ee18Sopenharmony_ci
573e509ee18Sopenharmony_ci        "{\"id\":18,\"result\":{\"result\":[{\"name\":\"length\",\"value\":{\"type\":\"number\","
574e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":false,\"configurable\":true,\"enumerable\":"
575e509ee18Sopenharmony_ci        "false,\"isOwn\":true},{\"name\":\"name\",\"value\":{\"type\":\"string\",\"unserializableValue\":"
576e509ee18Sopenharmony_ci        "\"[Symbol.iterator]\",\"description\":\"[Symbol.iterator]\"},\"writable\":false,\"configurable\":true,"
577e509ee18Sopenharmony_ci        "\"enumerable\":false,\"isOwn\":true}]}}",
578e509ee18Sopenharmony_ci
579e509ee18Sopenharmony_ci        "{\"id\":19,\"result\":{\"result\":[{\"name\":\"size\",\"value\":{\"type\":\"number\",\"unserializableValue\":"
580e509ee18Sopenharmony_ci        "\"0\",\"description\":\"0\",\"objectId\":\"120\"},\"writable\":false,\"configurable\":false,\"enumerable\":"
581e509ee18Sopenharmony_ci        "false,\"isOwn\":false},{\"name\":\"[[Entries]]\",\"value\":{\"type\":\"object\",\"subtype\":\"array\","
582e509ee18Sopenharmony_ci        "\"className\":\"Array\",\"unserializableValue\":\"Array(0)\",\"description\":\"Array(0)\",\"objectId\":"
583e509ee18Sopenharmony_ci        "\"121\"},\"writable\":false,\"configurable\":false,\"enumerable\":false,\"isOwn\":false}]}}",
584e509ee18Sopenharmony_ci
585e509ee18Sopenharmony_ci        "{\"id\":20,\"result\":{\"result\":[{\"name\":\"key0\",\"value\":{\"type\":\"string\",\"unserializableValue\":"
586e509ee18Sopenharmony_ci        "\"value0\",\"description\":\"value0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":"
587e509ee18Sopenharmony_ci        "true},{\"name\":\"key1\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"100\",\"description\":"
588e509ee18Sopenharmony_ci        "\"100\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true}]}}",
589e509ee18Sopenharmony_ci
590e509ee18Sopenharmony_ci        "{\"id\":21,\"result\":{\"result\":[{\"name\":\"global\",\"value\":{\"type\":\"boolean\","
591e509ee18Sopenharmony_ci        "\"unserializableValue\":\"false\",\"description\":\"false\",\"objectId\":\"122\"},\"writable\":false,"
592e509ee18Sopenharmony_ci        "\"configurable\":false,\"enumerable\":false,\"isOwn\":false},{\"name\":\"ignoreCase\",\"value\":{\"type\":"
593e509ee18Sopenharmony_ci        "\"boolean\",\"unserializableValue\":\"true\",\"description\":\"true\",\"objectId\":\"123\"},\"writable\":"
594e509ee18Sopenharmony_ci        "false,\"configurable\":false,\"enumerable\":false,\"isOwn\":false},{\"name\":\"multiline\",\"value\":"
595e509ee18Sopenharmony_ci        "{\"type\":\"boolean\",\"unserializableValue\":\"false\",\"description\":\"false\",\"objectId\":\"124\"},"
596e509ee18Sopenharmony_ci        "\"writable\":false,\"configurable\":false,\"enumerable\":false,\"isOwn\":false},{\"name\":\"dotAll\","
597e509ee18Sopenharmony_ci        "\"value\":{\"type\":\"boolean\",\"unserializableValue\":\"false\",\"description\":\"false\",\"objectId\":"
598e509ee18Sopenharmony_ci        "\"125\"},\"writable\":false,\"configurable\":false,\"enumerable\":false,\"isOwn\":false},{\"name\":"
599e509ee18Sopenharmony_ci        "\"hasIndices\",\"value\":{\"type\":\"boolean\",\"unserializableValue\":\"false\",\"description\":\"false\","
600e509ee18Sopenharmony_ci        "\"objectId\":\"126\"},\"writable\":false,\"configurable\":false,\"enumerable\":false,\"isOwn\":false},"
601e509ee18Sopenharmony_ci        "{\"name\":\"unicode\",\"value\":{\"type\":\"boolean\",\"unserializableValue\":\"false\",\"description\":"
602e509ee18Sopenharmony_ci        "\"false\",\"objectId\":\"127\"},\"writable\":false,\"configurable\":false,\"enumerable\":false,\"isOwn\":"
603e509ee18Sopenharmony_ci        "false},{\"name\":\"sticky\",\"value\":{\"type\":\"boolean\",\"unserializableValue\":\"false\",\"description\":"
604e509ee18Sopenharmony_ci        "\"false\",\"objectId\":\"128\"},\"writable\":false,\"configurable\":false,\"enumerable\":false,\"isOwn\":"
605e509ee18Sopenharmony_ci        "false},{\"name\":\"flags\",\"value\":{\"type\":\"string\",\"unserializableValue\":\"i\",\"description\":"
606e509ee18Sopenharmony_ci        "\"i\",\"objectId\":\"129\"},\"writable\":false,\"configurable\":false,\"enumerable\":false,\"isOwn\":false},"
607e509ee18Sopenharmony_ci        "{\"name\":\"source\",\"value\":{\"type\":\"string\",\"unserializableValue\":\"^\\\\d+\\\\.\\\\d+$\","
608e509ee18Sopenharmony_ci        "\"description\":\"^\\\\d+\\\\.\\\\d+$\",\"objectId\":\"130\"},\"writable\":false,\"configurable\":false,"
609e509ee18Sopenharmony_ci        "\"enumerable\":false,\"isOwn\":false},{\"name\":\"lastIndex\",\"value\":{\"type\":\"number\","
610e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":false,\"enumerable\":"
611e509ee18Sopenharmony_ci        "false,\"isOwn\":true}]}}",
612e509ee18Sopenharmony_ci
613e509ee18Sopenharmony_ci        "{\"id\":22,\"result\":{\"result\":[{\"name\":\"size\",\"value\":{\"type\":\"number\",\"unserializableValue\":"
614e509ee18Sopenharmony_ci        "\"0\",\"description\":\"0\",\"objectId\":\"131\"},\"writable\":false,\"configurable\":false,\"enumerable\":"
615e509ee18Sopenharmony_ci        "false,\"isOwn\":false},{\"name\":\"[[Entries]]\",\"value\":{\"type\":\"object\",\"subtype\":\"array\","
616e509ee18Sopenharmony_ci        "\"className\":\"Array\",\"unserializableValue\":\"Array(0)\",\"description\":\"Array(0)\",\"objectId\":"
617e509ee18Sopenharmony_ci        "\"132\"},\"writable\":false,\"configurable\":false,\"enumerable\":false,\"isOwn\":false}]}}",
618e509ee18Sopenharmony_ci
619e509ee18Sopenharmony_ci        "{\"id\":23,\"result\":{\"result\":[{\"name\":\"[[Int8Array]]\",\"value\":{\"type\":\"object\",\"className\":"
620e509ee18Sopenharmony_ci        "\"Object\",\"unserializableValue\":\"Int8Array(32)\",\"description\":\"Int8Array(32)\",\"objectId\":\"133\"},"
621e509ee18Sopenharmony_ci        "\"writable\":true,\"configurable\":true,\"enumerable\":false,\"isOwn\":true},{\"name\":\"[[Uint8Array]]\","
622e509ee18Sopenharmony_ci        "\"value\":{\"type\":\"object\",\"className\":\"Object\",\"unserializableValue\":\"Uint8Array(32)\","
623e509ee18Sopenharmony_ci        "\"description\":\"Uint8Array(32)\",\"objectId\":\"134\"},\"writable\":true,\"configurable\":true,"
624e509ee18Sopenharmony_ci        "\"enumerable\":false,\"isOwn\":true},{\"name\":\"[[Int16Array]]\",\"value\":{\"type\":\"object\","
625e509ee18Sopenharmony_ci        "\"className\":\"Object\",\"unserializableValue\":\"Int16Array(16)\",\"description\":\"Int16Array(16)\","
626e509ee18Sopenharmony_ci        "\"objectId\":\"135\"},\"writable\":true,\"configurable\":true,\"enumerable\":false,\"isOwn\":true},{\"name\":"
627e509ee18Sopenharmony_ci        "\"[[Int32Array]]\",\"value\":{\"type\":\"object\",\"className\":\"Object\",\"unserializableValue\":"
628e509ee18Sopenharmony_ci        "\"Int32Array(8)\",\"description\":\"Int32Array(8)\",\"objectId\":\"136\"},\"writable\":true,\"configurable\":"
629e509ee18Sopenharmony_ci        "true,\"enumerable\":false,\"isOwn\":true},{\"name\":\"[[ArrayBufferByteLength]]\",\"value\":{\"type\":"
630e509ee18Sopenharmony_ci        "\"number\",\"unserializableValue\":\"32\",\"description\":\"32\",\"objectId\":\"137\"},\"writable\":false,"
631e509ee18Sopenharmony_ci        "\"configurable\":false,\"enumerable\":false,\"isOwn\":false},{\"name\":\"byteLength\",\"value\":{\"type\":"
632e509ee18Sopenharmony_ci        "\"number\",\"unserializableValue\":\"32\",\"description\":\"32\",\"objectId\":\"138\"},\"writable\":false,"
633e509ee18Sopenharmony_ci        "\"configurable\":false,\"enumerable\":false,\"isOwn\":false}]}}",
634e509ee18Sopenharmony_ci
635e509ee18Sopenharmony_ci        "{\"id\":24,\"result\":{\"result\":[{\"name\":\"0\",\"value\":{\"type\":\"number\",\"unserializableValue\":"
636e509ee18Sopenharmony_ci        "\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},"
637e509ee18Sopenharmony_ci        "{\"name\":\"1\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},"
638e509ee18Sopenharmony_ci        "\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"2\",\"value\":"
639e509ee18Sopenharmony_ci        "{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":"
640e509ee18Sopenharmony_ci        "true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"3\",\"value\":{\"type\":\"number\","
641e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
642e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"4\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
643e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":"
644e509ee18Sopenharmony_ci        "\"5\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,"
645e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"6\",\"value\":{\"type\":\"number\","
646e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
647e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"7\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
648e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":"
649e509ee18Sopenharmony_ci        "\"8\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,"
650e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"9\",\"value\":{\"type\":\"number\","
651e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
652e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"10\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
653e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":"
654e509ee18Sopenharmony_ci        "\"11\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,"
655e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"12\",\"value\":{\"type\":\"number\","
656e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
657e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"13\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
658e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":"
659e509ee18Sopenharmony_ci        "\"14\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,"
660e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"15\",\"value\":{\"type\":\"number\","
661e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
662e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"16\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
663e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":"
664e509ee18Sopenharmony_ci        "\"17\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,"
665e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"18\",\"value\":{\"type\":\"number\","
666e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
667e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"19\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
668e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":"
669e509ee18Sopenharmony_ci        "\"20\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,"
670e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"21\",\"value\":{\"type\":\"number\","
671e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
672e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"22\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
673e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":"
674e509ee18Sopenharmony_ci        "\"23\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,"
675e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":true,\"isOwn\":true}]}}",
676e509ee18Sopenharmony_ci
677e509ee18Sopenharmony_ci        "{\"id\":25,\"result\":{\"result\":[{\"name\":\"[[PrimitiveValue]]\",\"value\":{\"type\":\"boolean\","
678e509ee18Sopenharmony_ci        "\"unserializableValue\":\"true\",\"description\":\"true\",\"objectId\":\"139\"},\"writable\":false,"
679e509ee18Sopenharmony_ci        "\"configurable\":false,\"enumerable\":false,\"isOwn\":false}]}}",
680e509ee18Sopenharmony_ci
681e509ee18Sopenharmony_ci        "{\"id\":26,\"result\":{\"result\":[{\"name\":\"0\",\"value\":{\"type\":\"number\",\"unserializableValue\":"
682e509ee18Sopenharmony_ci        "\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},"
683e509ee18Sopenharmony_ci        "{\"name\":\"1\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},"
684e509ee18Sopenharmony_ci        "\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"2\",\"value\":"
685e509ee18Sopenharmony_ci        "{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":"
686e509ee18Sopenharmony_ci        "true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"3\",\"value\":{\"type\":\"number\","
687e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
688e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"4\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
689e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":"
690e509ee18Sopenharmony_ci        "\"5\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,"
691e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"6\",\"value\":{\"type\":\"number\","
692e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
693e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"7\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
694e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":"
695e509ee18Sopenharmony_ci        "\"8\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,"
696e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"9\",\"value\":{\"type\":\"number\","
697e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
698e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"10\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
699e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":"
700e509ee18Sopenharmony_ci        "\"11\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,"
701e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"12\",\"value\":{\"type\":\"number\","
702e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
703e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"13\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
704e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},"
705e509ee18Sopenharmony_ci        "{\"name\":\"14\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},"
706e509ee18Sopenharmony_ci        "\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"15\",\"value\":"
707e509ee18Sopenharmony_ci        "{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":"
708e509ee18Sopenharmony_ci        "true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"16\",\"value\":{\"type\":\"number\","
709e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
710e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"17\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
711e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":"
712e509ee18Sopenharmony_ci        "\"18\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,"
713e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"19\",\"value\":{\"type\":\"number\","
714e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
715e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"20\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
716e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":"
717e509ee18Sopenharmony_ci        "\"21\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,"
718e509ee18Sopenharmony_ci        "\"configurable\":true,\"enumerable\":true,\"isOwn\":true},{\"name\":\"22\",\"value\":{\"type\":\"number\","
719e509ee18Sopenharmony_ci        "\"unserializableValue\":\"0\",\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":"
720e509ee18Sopenharmony_ci        "true,\"isOwn\":true},{\"name\":\"23\",\"value\":{\"type\":\"number\",\"unserializableValue\":\"0\","
721e509ee18Sopenharmony_ci        "\"description\":\"0\"},\"writable\":true,\"configurable\":true,\"enumerable\":true,\"isOwn\":true}]}}"
722e509ee18Sopenharmony_ci    };
723e509ee18Sopenharmony_ci};
724e509ee18Sopenharmony_ci
725e509ee18Sopenharmony_cistd::unique_ptr<TestActions> GetJsModuleVariableTest()
726e509ee18Sopenharmony_ci{
727e509ee18Sopenharmony_ci    return std::make_unique<JsModuleVariableTest>();
728e509ee18Sopenharmony_ci}
729e509ee18Sopenharmony_ci}  // namespace panda::ecmascript::tooling::test
730e509ee18Sopenharmony_ci
731e509ee18Sopenharmony_ci#endif  // ECMASCRIPT_TOOLING_TEST_TESTCASES_JS_MODULE_VARIABLE_TEST_H
732