mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-11 06:09:08 -07:00
Small JS bindings tweaks
- no destroy for math - tweak example print results - namespace naming consistency
This commit is contained in:
@@ -2,4 +2,4 @@ let keyboard = require("keyboard");
|
||||
|
||||
let text = keyboard.text(100, "Please Input Shit", 1);
|
||||
|
||||
print(text);
|
||||
print("Got text:", text);
|
||||
@@ -8,4 +8,4 @@ submenu.setHeader("Select an option:");
|
||||
|
||||
let result = submenu.show();
|
||||
|
||||
print("Result: ", result);
|
||||
print("Result:", result);
|
||||
|
||||
@@ -7,7 +7,7 @@ typedef struct {
|
||||
char* mac_addr;
|
||||
size_t beacon_data_len;
|
||||
GapExtraBeaconConfig beacon_config;
|
||||
} JSblebeaconInst;
|
||||
} JsBlebeaconInst;
|
||||
|
||||
struct OUI_MAP_ENTRY {
|
||||
const char* brand;
|
||||
@@ -78,9 +78,9 @@ static char* generate_mac_address(const char* brand) {
|
||||
return mac_address;
|
||||
}
|
||||
|
||||
static JSblebeaconInst* get_this_ctx(struct mjs* mjs) {
|
||||
static JsBlebeaconInst* get_this_ctx(struct mjs* mjs) {
|
||||
mjs_val_t obj_inst = mjs_get(mjs, mjs_get_this(mjs), INST_PROP_NAME, ~0);
|
||||
JSblebeaconInst* storage = mjs_get_ptr(mjs, obj_inst);
|
||||
JsBlebeaconInst* storage = mjs_get_ptr(mjs, obj_inst);
|
||||
furi_assert(storage);
|
||||
return storage;
|
||||
}
|
||||
@@ -167,7 +167,7 @@ static uint8_t* hexstr_to_uint8(const char* hexstr, size_t* out_length) {
|
||||
static void js_blebeacon_set_data(struct mjs* mjs) {
|
||||
FURI_LOG_D("BLE", "Setting data");
|
||||
if(!check_arg_count(mjs, 1)) return;
|
||||
JSblebeaconInst* inst = get_this_ctx(mjs);
|
||||
JsBlebeaconInst* inst = get_this_ctx(mjs);
|
||||
if(!inst) {
|
||||
FURI_LOG_D("BLE", "Beacon instance is null");
|
||||
ret_bad_args(mjs, "Beacon instance is null");
|
||||
@@ -214,7 +214,7 @@ static void js_blebeacon_set_mac(struct mjs* mjs) {
|
||||
return;
|
||||
}
|
||||
|
||||
JSblebeaconInst* inst = get_this_ctx(mjs);
|
||||
JsBlebeaconInst* inst = get_this_ctx(mjs);
|
||||
char* mac_addr = "";
|
||||
if(!get_str_arg(mjs, 0, &mac_addr)) return;
|
||||
inst->mac_addr = mac_addr;
|
||||
@@ -251,7 +251,7 @@ static void js_blebeacon_stop(struct mjs* mjs) {
|
||||
}
|
||||
|
||||
static void* js_blebeacon_create(struct mjs* mjs, mjs_val_t* object) {
|
||||
JSblebeaconInst* inst = malloc(sizeof(JSblebeaconInst));
|
||||
JsBlebeaconInst* inst = malloc(sizeof(JsBlebeaconInst));
|
||||
mjs_val_t blebeacon_obj = mjs_mk_object(mjs);
|
||||
mjs_set(mjs, blebeacon_obj, INST_PROP_NAME, ~0, mjs_mk_foreign(mjs, inst));
|
||||
mjs_set(mjs, blebeacon_obj, "setData", ~0, MJS_MK_FN(js_blebeacon_set_data));
|
||||
@@ -264,7 +264,7 @@ static void* js_blebeacon_create(struct mjs* mjs, mjs_val_t* object) {
|
||||
}
|
||||
|
||||
static void js_blebeacon_destroy(void* ptr) {
|
||||
JSblebeaconInst* inst = (JSblebeaconInst*)ptr;
|
||||
JsBlebeaconInst* inst = (JsBlebeaconInst*)ptr;
|
||||
if(inst) {
|
||||
free(inst->data);
|
||||
free(inst->mac_addr);
|
||||
@@ -278,12 +278,12 @@ static const JsModuleDescriptor js_blebeacon_desc = {
|
||||
js_blebeacon_destroy,
|
||||
};
|
||||
|
||||
static const FlipperAppPluginDescriptor blebeacon_plugin_descriptor = {
|
||||
static const FlipperAppPluginDescriptor plugin_descriptor = {
|
||||
.appid = PLUGIN_APP_ID,
|
||||
.ep_api_version = PLUGIN_API_VERSION,
|
||||
.entry_point = &js_blebeacon_desc,
|
||||
};
|
||||
|
||||
const FlipperAppPluginDescriptor* js_blebeacon_ep(void) {
|
||||
return &blebeacon_plugin_descriptor;
|
||||
return &plugin_descriptor;
|
||||
}
|
||||
@@ -11,7 +11,7 @@ typedef struct {
|
||||
ByteInput* byteinputview;
|
||||
ViewDispatcher* view_dispatcher;
|
||||
uint8_t* byteinput;
|
||||
} JSkeyboardInst;
|
||||
} JsKeyboardInst;
|
||||
|
||||
static void ret_bad_args(struct mjs* mjs, const char* error) {
|
||||
mjs_prepend_errorf(mjs, MJS_BAD_ARGS_ERROR, "%s", error);
|
||||
@@ -67,25 +67,25 @@ static bool get_int_arg(struct mjs* mjs, size_t index, int* value) {
|
||||
return true;
|
||||
}
|
||||
|
||||
static JSkeyboardInst* get_this_ctx(struct mjs* mjs) {
|
||||
static JsKeyboardInst* get_this_ctx(struct mjs* mjs) {
|
||||
mjs_val_t obj_inst = mjs_get(mjs, mjs_get_this(mjs), INST_PROP_NAME, ~0);
|
||||
JSkeyboardInst* storage = mjs_get_ptr(mjs, obj_inst);
|
||||
JsKeyboardInst* storage = mjs_get_ptr(mjs, obj_inst);
|
||||
furi_assert(storage);
|
||||
return storage;
|
||||
}
|
||||
|
||||
void text_input_callback(void* context) {
|
||||
JSkeyboardInst* keyboardinst = (JSkeyboardInst*)context;
|
||||
JsKeyboardInst* keyboardinst = (JsKeyboardInst*)context;
|
||||
view_dispatcher_stop(keyboardinst->view_dispatcher);
|
||||
}
|
||||
|
||||
void byte_input_callback(void* context) {
|
||||
JSkeyboardInst* keyboardinst = (JSkeyboardInst*)context;
|
||||
JsKeyboardInst* keyboardinst = (JsKeyboardInst*)context;
|
||||
view_dispatcher_stop(keyboardinst->view_dispatcher);
|
||||
}
|
||||
|
||||
static void js_keyboard_text(struct mjs* mjs) {
|
||||
JSkeyboardInst* keyboardinst = get_this_ctx(mjs);
|
||||
JsKeyboardInst* keyboardinst = get_this_ctx(mjs);
|
||||
|
||||
int MaxInputLength;
|
||||
if(!get_int_arg(mjs, 0, &MaxInputLength)) return;
|
||||
@@ -127,7 +127,7 @@ static void js_keyboard_text(struct mjs* mjs) {
|
||||
}
|
||||
|
||||
static void js_keyboard_byte(struct mjs* mjs) {
|
||||
JSkeyboardInst* keyboardinst = get_this_ctx(mjs);
|
||||
JsKeyboardInst* keyboardinst = get_this_ctx(mjs);
|
||||
|
||||
int MaxInputLength;
|
||||
if(!get_int_arg(mjs, 0, &MaxInputLength)) return;
|
||||
@@ -167,7 +167,7 @@ static void js_keyboard_byte(struct mjs* mjs) {
|
||||
}
|
||||
|
||||
static void* js_keyboard_create(struct mjs* mjs, mjs_val_t* object) {
|
||||
JSkeyboardInst* keyboardinst = malloc(sizeof(JSkeyboardInst));
|
||||
JsKeyboardInst* keyboardinst = malloc(sizeof(JsKeyboardInst));
|
||||
mjs_val_t keyboard_obj = mjs_mk_object(mjs);
|
||||
mjs_set(mjs, keyboard_obj, INST_PROP_NAME, ~0, mjs_mk_foreign(mjs, keyboardinst));
|
||||
mjs_set(mjs, keyboard_obj, "text", ~0, MJS_MK_FN(js_keyboard_text));
|
||||
@@ -187,7 +187,7 @@ static void* js_keyboard_create(struct mjs* mjs, mjs_val_t* object) {
|
||||
}
|
||||
|
||||
static void js_keyboard_destroy(void* inst) {
|
||||
JSkeyboardInst* insts = (JSkeyboardInst*)inst;
|
||||
JsKeyboardInst* insts = (JsKeyboardInst*)inst;
|
||||
byte_input_free(insts->byteinputview);
|
||||
text_input_free(insts->textinput);
|
||||
view_dispatcher_free(insts->view_dispatcher);
|
||||
@@ -201,13 +201,12 @@ static const JsModuleDescriptor js_keyboard_desc = {
|
||||
js_keyboard_destroy,
|
||||
};
|
||||
|
||||
static const FlipperAppPluginDescriptor keyboard_plugin_descriptor = {
|
||||
static const FlipperAppPluginDescriptor plugin_descriptor = {
|
||||
.appid = PLUGIN_APP_ID,
|
||||
.ep_api_version = PLUGIN_API_VERSION,
|
||||
.entry_point = &js_keyboard_desc,
|
||||
};
|
||||
|
||||
const FlipperAppPluginDescriptor* js_keyboard_ep(void) {
|
||||
UNUSED(js_keyboard_byte);
|
||||
return &keyboard_plugin_descriptor;
|
||||
return &plugin_descriptor;
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
#include "../js_modules.h"
|
||||
#include "furi_hal_random.h"
|
||||
|
||||
#define MJS_PI (double)3.14159265358979323846
|
||||
#define MJS_E (double)2.7182818284590452354
|
||||
#define JS_MATH_PI (double)3.14159265358979323846
|
||||
#define JS_MATH_E (double)2.7182818284590452354
|
||||
|
||||
static void ret_bad_args(struct mjs* mjs, const char* error) {
|
||||
mjs_prepend_errorf(mjs, MJS_BAD_ARGS_ERROR, "%s", error);
|
||||
@@ -18,7 +18,7 @@ static bool check_arg_count(struct mjs* mjs, size_t count) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void mjs_abs(struct mjs* mjs) {
|
||||
void js_math_abs(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -26,7 +26,7 @@ void mjs_abs(struct mjs* mjs) {
|
||||
mjs_return(mjs, x < 0 ? mjs_mk_number(mjs, -x) : mjs_arg(mjs, 0));
|
||||
}
|
||||
|
||||
void mjs_acos(struct mjs* mjs) {
|
||||
void js_math_acos(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -35,10 +35,10 @@ void mjs_acos(struct mjs* mjs) {
|
||||
ret_bad_args(mjs, "Invalid input value for Math.acos");
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
mjs_return(mjs, mjs_mk_number(mjs, MJS_PI / (double)2 - atan(x / sqrt(1 - x * x))));
|
||||
mjs_return(mjs, mjs_mk_number(mjs, JS_MATH_PI / (double)2 - atan(x / sqrt(1 - x * x))));
|
||||
}
|
||||
|
||||
void mjs_acosh(struct mjs* mjs) {
|
||||
void js_math_acosh(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -50,7 +50,7 @@ void mjs_acosh(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, log(x + sqrt(x * x - 1))));
|
||||
}
|
||||
|
||||
void mjs_asin(struct mjs* mjs) {
|
||||
void js_math_asin(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -58,7 +58,7 @@ void mjs_asin(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, atan(x / sqrt(1 - x * x))));
|
||||
}
|
||||
|
||||
void mjs_asinh(struct mjs* mjs) {
|
||||
void js_math_asinh(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -66,7 +66,7 @@ void mjs_asinh(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, log(x + sqrt(x * x + 1))));
|
||||
}
|
||||
|
||||
void mjs_atan(struct mjs* mjs) {
|
||||
void js_math_atan(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -74,7 +74,7 @@ void mjs_atan(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, atan(x)));
|
||||
}
|
||||
|
||||
void mjs_atan2(struct mjs* mjs) {
|
||||
void js_math_atan2(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 2) || !mjs_is_number(mjs_arg(mjs, 0)) ||
|
||||
!mjs_is_number(mjs_arg(mjs, 1))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
@@ -84,7 +84,7 @@ void mjs_atan2(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, atan2(y, x)));
|
||||
}
|
||||
|
||||
void mjs_atanh(struct mjs* mjs) {
|
||||
void js_math_atanh(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -96,7 +96,7 @@ void mjs_atanh(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, (double)0.5 * log((1 + x) / (1 - x))));
|
||||
}
|
||||
|
||||
void mjs_cbrt(struct mjs* mjs) {
|
||||
void js_math_cbrt(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -104,7 +104,7 @@ void mjs_cbrt(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, pow(x, 1.0 / 3.0)));
|
||||
}
|
||||
|
||||
void mjs_ceil(struct mjs* mjs) {
|
||||
void js_math_ceil(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -112,7 +112,7 @@ void mjs_ceil(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, (int)(x + (double)0.5)));
|
||||
}
|
||||
|
||||
void mjs_clz32(struct mjs* mjs) {
|
||||
void js_math_clz32(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -125,7 +125,7 @@ void mjs_clz32(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, 32 - count));
|
||||
}
|
||||
|
||||
void mjs_cos(struct mjs* mjs) {
|
||||
void js_math_cos(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -133,7 +133,7 @@ void mjs_cos(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, cos(x)));
|
||||
}
|
||||
|
||||
void mjs_exp(struct mjs* mjs) {
|
||||
void js_math_exp(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -147,7 +147,7 @@ void mjs_exp(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, result));
|
||||
}
|
||||
|
||||
void mjs_floor(struct mjs* mjs) {
|
||||
void js_math_floor(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -155,7 +155,7 @@ void mjs_floor(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, (int)x));
|
||||
}
|
||||
|
||||
void mjs_log(struct mjs* mjs) {
|
||||
void js_math_log(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -165,14 +165,14 @@ void mjs_log(struct mjs* mjs) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
double result = 0;
|
||||
while(x >= MJS_E) {
|
||||
x /= MJS_E;
|
||||
while(x >= JS_MATH_E) {
|
||||
x /= JS_MATH_E;
|
||||
result++;
|
||||
}
|
||||
mjs_return(mjs, mjs_mk_number(mjs, result + log(x)));
|
||||
}
|
||||
|
||||
void mjs_max(struct mjs* mjs) {
|
||||
void js_math_max(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 2) || !mjs_is_number(mjs_arg(mjs, 0)) ||
|
||||
!mjs_is_number(mjs_arg(mjs, 1))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
@@ -182,7 +182,7 @@ void mjs_max(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, x > y ? x : y));
|
||||
}
|
||||
|
||||
void mjs_min(struct mjs* mjs) {
|
||||
void js_math_min(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 2) || !mjs_is_number(mjs_arg(mjs, 0)) ||
|
||||
!mjs_is_number(mjs_arg(mjs, 1))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
@@ -192,7 +192,7 @@ void mjs_min(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, x < y ? x : y));
|
||||
}
|
||||
|
||||
void mjs_pow(struct mjs* mjs) {
|
||||
void js_math_pow(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 2) || !mjs_is_number(mjs_arg(mjs, 0)) ||
|
||||
!mjs_is_number(mjs_arg(mjs, 1))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
@@ -206,7 +206,7 @@ void mjs_pow(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, result));
|
||||
}
|
||||
|
||||
void mjs_random(struct mjs* mjs) {
|
||||
void js_math_random(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 0)) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -215,7 +215,7 @@ void mjs_random(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, rnd));
|
||||
}
|
||||
|
||||
void mjs_sign(struct mjs* mjs) {
|
||||
void js_math_sign(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -223,7 +223,7 @@ void mjs_sign(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, x == 0 ? 0 : (x < 0 ? -1 : 1)));
|
||||
}
|
||||
|
||||
void mjs_sin(struct mjs* mjs) {
|
||||
void js_math_sin(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -237,7 +237,7 @@ void mjs_sin(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, result));
|
||||
}
|
||||
|
||||
void mjs_sqrt(struct mjs* mjs) {
|
||||
void js_math_sqrt(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -253,7 +253,7 @@ void mjs_sqrt(struct mjs* mjs) {
|
||||
mjs_return(mjs, mjs_mk_number(mjs, result));
|
||||
}
|
||||
|
||||
void mjs_trunc(struct mjs* mjs) {
|
||||
void js_math_trunc(struct mjs* mjs) {
|
||||
if(!check_arg_count(mjs, 1) || !mjs_is_number(mjs_arg(mjs, 0))) {
|
||||
mjs_return(mjs, MJS_UNDEFINED);
|
||||
}
|
||||
@@ -263,50 +263,46 @@ void mjs_trunc(struct mjs* mjs) {
|
||||
|
||||
static void* js_math_create(struct mjs* mjs, mjs_val_t* object) {
|
||||
mjs_val_t math_obj = mjs_mk_object(mjs);
|
||||
mjs_set(mjs, math_obj, "abs", ~0, MJS_MK_FN(mjs_abs));
|
||||
mjs_set(mjs, math_obj, "acos", ~0, MJS_MK_FN(mjs_acos));
|
||||
mjs_set(mjs, math_obj, "acosh", ~0, MJS_MK_FN(mjs_acosh));
|
||||
mjs_set(mjs, math_obj, "asin", ~0, MJS_MK_FN(mjs_asin));
|
||||
mjs_set(mjs, math_obj, "asinh", ~0, MJS_MK_FN(mjs_asinh));
|
||||
mjs_set(mjs, math_obj, "atan", ~0, MJS_MK_FN(mjs_atan));
|
||||
mjs_set(mjs, math_obj, "atan2", ~0, MJS_MK_FN(mjs_atan2));
|
||||
mjs_set(mjs, math_obj, "atanh", ~0, MJS_MK_FN(mjs_atanh));
|
||||
mjs_set(mjs, math_obj, "cbrt", ~0, MJS_MK_FN(mjs_cbrt));
|
||||
mjs_set(mjs, math_obj, "ceil", ~0, MJS_MK_FN(mjs_ceil));
|
||||
mjs_set(mjs, math_obj, "clz32", ~0, MJS_MK_FN(mjs_clz32));
|
||||
mjs_set(mjs, math_obj, "cos", ~0, MJS_MK_FN(mjs_cos));
|
||||
mjs_set(mjs, math_obj, "exp", ~0, MJS_MK_FN(mjs_exp));
|
||||
mjs_set(mjs, math_obj, "floor", ~0, MJS_MK_FN(mjs_floor));
|
||||
mjs_set(mjs, math_obj, "log", ~0, MJS_MK_FN(mjs_log));
|
||||
mjs_set(mjs, math_obj, "max", ~0, MJS_MK_FN(mjs_max));
|
||||
mjs_set(mjs, math_obj, "min", ~0, MJS_MK_FN(mjs_min));
|
||||
mjs_set(mjs, math_obj, "pow", ~0, MJS_MK_FN(mjs_pow));
|
||||
mjs_set(mjs, math_obj, "random", ~0, MJS_MK_FN(mjs_random));
|
||||
mjs_set(mjs, math_obj, "sign", ~0, MJS_MK_FN(mjs_sign));
|
||||
mjs_set(mjs, math_obj, "sin", ~0, MJS_MK_FN(mjs_sin));
|
||||
mjs_set(mjs, math_obj, "sqrt", ~0, MJS_MK_FN(mjs_sqrt));
|
||||
mjs_set(mjs, math_obj, "trunc", ~0, MJS_MK_FN(mjs_trunc));
|
||||
mjs_set(mjs, math_obj, "PI", ~0, mjs_mk_number(mjs, MJS_PI));
|
||||
mjs_set(mjs, math_obj, "abs", ~0, MJS_MK_FN(js_math_abs));
|
||||
mjs_set(mjs, math_obj, "acos", ~0, MJS_MK_FN(js_math_acos));
|
||||
mjs_set(mjs, math_obj, "acosh", ~0, MJS_MK_FN(js_math_acosh));
|
||||
mjs_set(mjs, math_obj, "asin", ~0, MJS_MK_FN(js_math_asin));
|
||||
mjs_set(mjs, math_obj, "asinh", ~0, MJS_MK_FN(js_math_asinh));
|
||||
mjs_set(mjs, math_obj, "atan", ~0, MJS_MK_FN(js_math_atan));
|
||||
mjs_set(mjs, math_obj, "atan2", ~0, MJS_MK_FN(js_math_atan2));
|
||||
mjs_set(mjs, math_obj, "atanh", ~0, MJS_MK_FN(js_math_atanh));
|
||||
mjs_set(mjs, math_obj, "cbrt", ~0, MJS_MK_FN(js_math_cbrt));
|
||||
mjs_set(mjs, math_obj, "ceil", ~0, MJS_MK_FN(js_math_ceil));
|
||||
mjs_set(mjs, math_obj, "clz32", ~0, MJS_MK_FN(js_math_clz32));
|
||||
mjs_set(mjs, math_obj, "cos", ~0, MJS_MK_FN(js_math_cos));
|
||||
mjs_set(mjs, math_obj, "exp", ~0, MJS_MK_FN(js_math_exp));
|
||||
mjs_set(mjs, math_obj, "floor", ~0, MJS_MK_FN(js_math_floor));
|
||||
mjs_set(mjs, math_obj, "log", ~0, MJS_MK_FN(js_math_log));
|
||||
mjs_set(mjs, math_obj, "max", ~0, MJS_MK_FN(js_math_max));
|
||||
mjs_set(mjs, math_obj, "min", ~0, MJS_MK_FN(js_math_min));
|
||||
mjs_set(mjs, math_obj, "pow", ~0, MJS_MK_FN(js_math_pow));
|
||||
mjs_set(mjs, math_obj, "random", ~0, MJS_MK_FN(js_math_random));
|
||||
mjs_set(mjs, math_obj, "sign", ~0, MJS_MK_FN(js_math_sign));
|
||||
mjs_set(mjs, math_obj, "sin", ~0, MJS_MK_FN(js_math_sin));
|
||||
mjs_set(mjs, math_obj, "sqrt", ~0, MJS_MK_FN(js_math_sqrt));
|
||||
mjs_set(mjs, math_obj, "trunc", ~0, MJS_MK_FN(js_math_trunc));
|
||||
mjs_set(mjs, math_obj, "PI", ~0, mjs_mk_number(mjs, JS_MATH_PI));
|
||||
*object = math_obj;
|
||||
return object;
|
||||
}
|
||||
|
||||
static void js_math_destroy(void* ptr) {
|
||||
UNUSED(ptr);
|
||||
return (void*)1;
|
||||
}
|
||||
|
||||
static const JsModuleDescriptor js_math_desc = {
|
||||
"math",
|
||||
js_math_create,
|
||||
js_math_destroy,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const FlipperAppPluginDescriptor btkicker_plugin_descriptor = {
|
||||
static const FlipperAppPluginDescriptor plugin_descriptor = {
|
||||
.appid = PLUGIN_APP_ID,
|
||||
.ep_api_version = PLUGIN_API_VERSION,
|
||||
.entry_point = &js_math_desc,
|
||||
};
|
||||
|
||||
const FlipperAppPluginDescriptor* js_math_ep(void) {
|
||||
return &btkicker_plugin_descriptor;
|
||||
return &plugin_descriptor;
|
||||
}
|
||||
Reference in New Issue
Block a user