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