Как сохранить имя переменной в Cheerp (транспортер C ++ to JavaScript) - PullRequest
3 голосов
/ 02 июля 2019

Я использую 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

1 Ответ

1 голос
/ 02 июля 2019

Вы можете попробовать передать параметр:

-cheerp-pretty-code

Источник: https://github.com/leaningtech/cheerp-meta/wiki/JavaScript-interoperability#clobbering-names

Если это не сработает, то я совершенно уверен, что это просто, к сожалению, не может бытьсвершившийся.

...