У меня есть простой класс написаный на хаксе:
@:expose
class Main implements IAsync {
static function main() {
trace("test");
}
static function testAwait() {
return 1;
}
}
И при конвертации в JavaScript
он в числе прочего выгоняет метод:
. . .
Main.testAwait = function() {
return Main.test();
};
. . .
Мне нужно чтобы макрос менял function
на async function
и выгонял что то типа:
. . .
Main.testAwait = async function() {
return Main.test();
};
. . .
Но мне не совсем очевидно как это сделать, если смотреть на стандартные примеры то обычно то содание нового метода будет выглядеть примерно так:
package haxe_test;
import haxe.macro.Expr;
import haxe.macro.Context;
using haxe.macro.Tools;
using haxe_test.AsyncBuilder;
class BuildHub {
macro static public function build():Array<Field> {
var fields = Context.getBuildFields();
var testFunc:Function = {
expr: macro return $v{1},
ret: null,
params: [],
args: []
};
fields.push({
name: "testAwait",
access: [Access.AStatic],
kind: FieldType.FFun(testFunc),
pos: Context.currentPos(),
});
return fields;
}
Но как поменять какоето ключевое слово в рамках какогото таргета например JavaScript
для нужных мне методов(возможно есть какието опции компилятора или JSGenApi может как то помочь)?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Возможно ли средствами PHP а может вдруг JS получить имя пользователя компьютера? Не имя компьютера, а и именно имя пользователя который активен...
Как передать переменную javascript в роле аргумента для метода в go?