apply
FunctionMacro
JSMacro
JSMacroAny