diff --git a/.vscode/launch.json b/.vscode/launch.json index 6971901..b5d54cd 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -12,10 +12,10 @@ "program": "${workspaceFolder}/build/wcc", "args": [ "\"--config-path\"", - "\"/mnt/d/Work/disassembly/wcc-exec/wcc/cmd1.txt\"" + "\"/mnt/d/Work/WeChatProjects/miniprogram-1/wcc/99a9bac3c05fc25dd070298212c4a7d3\"" ], "stopAtEntry": false, - "cwd": "/mnt/d/Work/WeChatProjects/miniprogram-demo/miniprogram", + "cwd": "/mnt/d/Work/WeChatProjects/miniprogram-1", "environment": [], "externalConsole": false, "MIMode": "gdb", diff --git a/src/include/night.h b/src/include/night.h index 848160b..6b2f636 100644 --- a/src/include/night.h +++ b/src/include/night.h @@ -325,7 +325,10 @@ namespace night std::string compile_obj_dot(night::ns_node *); std::string compile_obj_property(night::ns_node *); std::string compile_obj_self_op(night::ns_node *); - std::string compile_once(std::string &, std::vector *, bool); + /** + * @param a3 结果 + */ + std::string compile_once(std::string &a3, std::vector *a4, bool a5); std::string compile_op_self(night::ns_node *); std::string compile_prog(night::ns_node *); std::string compile_prog_no_sem(night::ns_node *); diff --git a/src/night/ns_compile_js.cpp b/src/night/ns_compile_js.cpp index b01a449..5287e76 100644 --- a/src/night/ns_compile_js.cpp +++ b/src/night/ns_compile_js.cpp @@ -190,17 +190,19 @@ namespace night this->offset_48++; if (v29) { - result += ")"; + result += "{"; this->offset_48++; auto v10 = a3->offset_244; + for (int i = 0; i < v10->size(); i++) { auto cur = v10->at(i); if (night::NS_TYPE_ASSIGN == cur->offset_0) { std::string v41 = cur->offset_180->offset_60; + std::string _v41 = v41; v41.append("=undefined==="); - v41.append(v41); + v41.append(_v41); v41.append("?"); result += v41; this->offset_48 += v41.length(); @@ -533,8 +535,11 @@ namespace night return result; } + int compile_i = 0; std::string NSCompileJs::compile(night::ns_node * a3) { + compile_i++; + int inner_compile_i = compile_i; if (this->offset_0.size() == 0) { std::string v9 = a3->offset_0; diff --git a/src/wxml/dom_lib/wxml_dom.cpp b/src/wxml/dom_lib/wxml_dom.cpp index 4ac6a89..6a8dec3 100644 --- a/src/wxml/dom_lib/wxml_dom.cpp +++ b/src/wxml/dom_lib/wxml_dom.cpp @@ -16,6 +16,7 @@ namespace WXML { { } + int DealSingleTokenToOps_i = 0; int WXMLDom::DealSingleTokenToOps( std::string const& a1, std::string& a2, @@ -30,6 +31,8 @@ namespace WXML { const std::map & a11 ) { + DealSingleTokenToOps_i++; + int inner_DealSingleTokenToOps_i = DealSingleTokenToOps_i; // DealSingleTokenToOps - 0 std::string v11; if (a8) @@ -248,6 +251,7 @@ namespace WXML { } return 0; } + int RenderAllOpsAndRecord_i = 0; void WXMLDom::RenderAllOpsAndRecord( std::string const& a2, std::string& a3, @@ -258,6 +262,8 @@ namespace WXML { const std::map & a8 ) { + RenderAllOpsAndRecord_i++; + int inner_RenderAllOpsAndRecord_i = RenderAllOpsAndRecord_i; if (this->offset_0 == "TEXTNODE") { this->DealSingleTokenToOps(a2, a3, a4, a5, &this->offset_84, 0, 0, 1, a6, a7, a8); @@ -382,8 +388,11 @@ namespace WXML { } + int RewriteTree_i = 0; void WXMLDom::RewriteTree(void) { + RewriteTree_i++; + int inner_RewriteTree_i = RewriteTree_i; // RewriteTree - 0 for (int i = 0; i < this->offset_72.size(); i++) { @@ -548,7 +557,7 @@ namespace WXML { { this->offset_72[i]->RewriteTree(); } - + return; } void WXMLDom::RenderChildren( @@ -607,6 +616,7 @@ namespace WXML { a6 << "var " << v147 << "=" << a3; a6 << "[x[" << this->offset_248->GetStrID(a2) << "]].j" << a12; } + v109++; } } } @@ -855,6 +865,7 @@ namespace WXML { } + int RenderNonDefine_i = 0; void WXMLDom::RenderNonDefine( std::string const& a2, std::string const& a3, @@ -872,6 +883,8 @@ namespace WXML { std::map * a15 ) { + RenderNonDefine_i++; + int inner_RenderNonDefine_i = RenderNonDefine_i; // RenderNonDefine - 0 if (a13 && this->offset_24.size()) { @@ -1301,7 +1314,7 @@ namespace WXML { if ( v161[0] != 'w' || v161[1] != 'x' || v161[2] != ':' && v161[2] != '-' - || v161 != "wx:scope-data") + || v161 == "wx:scope-data") { // pos: 搜索 -> !__stricmp((const char *)v161, "wx:scope-data") // ++emplace_back_i; @@ -1399,6 +1412,10 @@ namespace WXML { } // RenderNonDefine - 35 + if (a5 == "o2J") + { + int a = 0; + } a6 << "var " << a5 << "=_mz(z,'" << this->offset_0 << "',["; v259 = ""; for (auto jj = v324.begin(); jj < v324.end(); jj++) diff --git a/src/wxml/expr_lib/parser.cpp b/src/wxml/expr_lib/parser.cpp index 1c6b3a7..cba6019 100644 --- a/src/wxml/expr_lib/parser.cpp +++ b/src/wxml/expr_lib/parser.cpp @@ -30,6 +30,8 @@ namespace WXML Parser::~Parser() { } + int Parse_i = 0; + int offset_0_push_i = 0; int Parser::Parse( std::string const& a2, std::string const& a3, @@ -38,6 +40,8 @@ namespace WXML std::string& a6, bool a7) { + Parse_i++; + int inner_Parse_i = Parse_i; // WXML::EXPRLib::Parser::Parse - 0 this->offset_0.clear(); this->offset_40.clear(); @@ -82,6 +86,7 @@ namespace WXML v70->offset_4_int = WXML::EXPRLib::TransitTable::GetExprNTType(); } this->offset_0.push_back(v70); + offset_0_push_i += 2; // WXML::EXPRLib::Parser::Parse - 20 int v49 = 0; while (true) @@ -222,6 +227,7 @@ namespace WXML std::shared_ptr cur1 = baseList[i]; if( cur1->offset_0() == 4) break; + offset_0_push_i++; this->offset_0.push_back(cur1); } diff --git a/src/wxml/expr_lib/tokenizer.cpp b/src/wxml/expr_lib/tokenizer.cpp index fa3de42..6c104e6 100644 --- a/src/wxml/expr_lib/tokenizer.cpp +++ b/src/wxml/expr_lib/tokenizer.cpp @@ -177,8 +177,11 @@ namespace WXML { } } + int GetTokens_i = 0; int Tokenizer::GetTokens(std::vector & a2, std::string &a3) { + GetTokens_i++; + int inner_GetTokens_i = GetTokens_i; int v21 = 18899; WXML::EXPRLib::Tokenizer::InitTransitTable(); int v24 = 1; diff --git a/test/disassembly/init.c b/test/disassembly/init.c index de31b6e..0976785 100644 --- a/test/disassembly/init.c +++ b/test/disassembly/init.c @@ -8776,6 +8776,7 @@ void __fastcall WXML::EXPRLib::TransitTable::Init(int a1) v968 = std::vector::push_back(&v1982); std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count(&v1980, v968); std::vector>::~vector(&v1982); + v1979 = 0; v1980 = 0; v1981 = 0; @@ -8786,6 +8787,7 @@ void __fastcall WXML::EXPRLib::TransitTable::Init(int a1) std::vector::_M_move_assign(&v1979); std::string::_M_dispose(&v1982, v969); std::vector::~vector(&v1979); + v1979 = 0; v1980 = 0; v1981 = 0;