【发布时间】:2019-07-02 13:10:50
【问题描述】:
我正在使用 Cheerp (https://www.leaningtech.com/cheerp/) 将一些 C++ 代码转换为 JavaScript。 有没有保留变量名的选项?看起来名字总是乱七八糟
原始C++代码:
void myClass::myMethod(int32_T myParam, boolean_T *rty_Result)
{
switch (myParam) {
case Mycase1:
case Mycase2:
case Mycase3:
case Mycase4:
case Mycase5:
*rty_Result = true;
break;
case Mycase6:
*rty_Result = (filter.field1.field2 == 1);
break;
default:
*rty_Result = false;
break;
}
}
来自 Cheerp 的输出:
function __ZN8JsBridge12AvailabilityEP9bFilter_Ti(Lthis,filter,myParam){
var tmp0=0;
switch(myParam|0){
case 5:
{
tmp0=filter.a3.i2|0;
return (((tmp0|0)===1?1:0)?1:0)|0;
break;
}
case 1:
case 2:
case 4:
case 6:
case 3:
{
return 1|0;
break;
}
default:{
return 0|0;
break;
}
}
}
我在文档中找不到任何选项: https://github.com/leaningtech/cheerp-meta/wiki
【问题讨论】:
-
嗨,这里是 Cheerp 的首席开发人员。 JS 级别的“变量”并不打算映射到 C++ 级别的变量。 JS 变量只是临时值,可以映射到 C++ 中的 0、1 或多个原始变量。您可以尝试我们的 SourceMaps 支持,而不是使用 -cheerp-pretty-code 进行调试(在此处记录:github.com/leaningtech/cheerp-meta/wiki/…)。使用 SourceMaps,您可以在浏览器调试器中查看原始 C++ 代码,但不幸的是,源映射标准不支持变量。我们希望在某个时候提供 C++ 变量调试。
-
读者注意:有一个相关问题here。
标签: javascript c++ transpiler cheerp