mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2025-12-12 12:42:30 +04:00
JS: Fix merge of 3963 and 3961 (#3980)
* toString() was moved, not duplicated * These had gotten lost * This is now implemented * Add missing version doctags
This commit is contained in:
@@ -217,16 +217,6 @@ static void js_parse_int(struct mjs* mjs) {
|
|||||||
mjs_return(mjs, mjs_mk_number(mjs, num));
|
mjs_return(mjs, mjs_mk_number(mjs, num));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void js_global_to_string(struct mjs* mjs) {
|
|
||||||
int base = 10;
|
|
||||||
if(mjs_nargs(mjs) > 1) base = mjs_get_int(mjs, mjs_arg(mjs, 1));
|
|
||||||
double num = mjs_get_int(mjs, mjs_arg(mjs, 0));
|
|
||||||
char tmp_str[] = "-2147483648";
|
|
||||||
itoa(num, tmp_str, base);
|
|
||||||
mjs_val_t ret = mjs_mk_string(mjs, tmp_str, ~0, true);
|
|
||||||
mjs_return(mjs, ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef JS_DEBUG
|
#ifdef JS_DEBUG
|
||||||
static void js_dump_write_callback(void* ctx, const char* format, ...) {
|
static void js_dump_write_callback(void* ctx, const char* format, ...) {
|
||||||
File* file = ctx;
|
File* file = ctx;
|
||||||
@@ -278,7 +268,6 @@ static int32_t js_thread(void* arg) {
|
|||||||
JS_ASSIGN_MULTI(mjs, global) {
|
JS_ASSIGN_MULTI(mjs, global) {
|
||||||
JS_FIELD("print", MJS_MK_FN(js_print));
|
JS_FIELD("print", MJS_MK_FN(js_print));
|
||||||
JS_FIELD("delay", MJS_MK_FN(js_delay));
|
JS_FIELD("delay", MJS_MK_FN(js_delay));
|
||||||
JS_FIELD("toString", MJS_MK_FN(js_global_to_string));
|
|
||||||
JS_FIELD("parseInt", MJS_MK_FN(js_parse_int));
|
JS_FIELD("parseInt", MJS_MK_FN(js_parse_int));
|
||||||
JS_FIELD("ffi_address", MJS_MK_FN(js_ffi_address));
|
JS_FIELD("ffi_address", MJS_MK_FN(js_ffi_address));
|
||||||
JS_FIELD("require", MJS_MK_FN(js_require));
|
JS_FIELD("require", MJS_MK_FN(js_require));
|
||||||
|
|||||||
@@ -120,6 +120,7 @@ declare function checkSdkCompatibility(expectedMajor: number, expectedMinor: num
|
|||||||
* recognized as a baseline feature. For more info, consult the module
|
* recognized as a baseline feature. For more info, consult the module
|
||||||
* documentation.
|
* documentation.
|
||||||
* @param features Array of named features to query
|
* @param features Array of named features to query
|
||||||
|
* @version Added in JS SDK 0.1
|
||||||
*/
|
*/
|
||||||
declare function doesSdkSupport(features: string[]): boolean;
|
declare function doesSdkSupport(features: string[]): boolean;
|
||||||
|
|
||||||
@@ -131,6 +132,7 @@ declare function doesSdkSupport(features: string[]): boolean;
|
|||||||
* features that are now recognized as baseline features. For more
|
* features that are now recognized as baseline features. For more
|
||||||
* info, consult the module documentation.
|
* info, consult the module documentation.
|
||||||
* @param features Array of named features to query
|
* @param features Array of named features to query
|
||||||
|
* @version Added in JS SDK 0.1
|
||||||
*/
|
*/
|
||||||
declare function checkSdkFeatures(features: string[]): void | never;
|
declare function checkSdkFeatures(features: string[]): void | never;
|
||||||
|
|
||||||
@@ -150,15 +152,48 @@ declare function delay(ms: number): void;
|
|||||||
declare function print(...args: any[]): void;
|
declare function print(...args: any[]): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Reads a JS value from a file
|
* @brief Converts a string to a number
|
||||||
*
|
* @param text The string to convert to a number
|
||||||
* Reads a file at the specified path, interprets it as a JS value and returns
|
* @param base Integer base (`2`...`16`), default: 10
|
||||||
* said value.
|
|
||||||
*
|
|
||||||
* @param path The path to the file
|
|
||||||
* @version Added in JS SDK 0.1
|
* @version Added in JS SDK 0.1
|
||||||
*/
|
*/
|
||||||
declare function load(path: string): any;
|
declare function parseInt(text: string, base?: number): number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Path to the directory containing the current script
|
||||||
|
* @version Added in JS SDK 0.1
|
||||||
|
*/
|
||||||
|
declare const __dirname: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Path to the current script file
|
||||||
|
* @version Added in JS SDK 0.1
|
||||||
|
*/
|
||||||
|
declare const __filename: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Runs a JS file and returns value from it
|
||||||
|
*
|
||||||
|
* Reads a file at the specified path and runs it as JS, returning the last evaluated value.
|
||||||
|
*
|
||||||
|
* The result is cached and this filepath will not re-evaluated on future
|
||||||
|
* load() calls for this session.
|
||||||
|
*
|
||||||
|
* @param path The path to the file
|
||||||
|
* @param scope An object to use as global scope while running this file
|
||||||
|
* @version Added in JS SDK 0.1
|
||||||
|
*/
|
||||||
|
declare function load(path: string, scope?: object): any;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Return 1-byte string whose ASCII code is the integer `n`
|
||||||
|
*
|
||||||
|
* If `n` is not numeric or outside of `0-255` range, `null` is returned
|
||||||
|
*
|
||||||
|
* @param n The ASCII code to convert to string
|
||||||
|
* @version Added in JS SDK 0.1
|
||||||
|
*/
|
||||||
|
declare function chr(n: number): string | null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Loads a natively implemented module
|
* @brief Loads a natively implemented module
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
* |----------------------|------------------|
|
* |----------------------|------------------|
|
||||||
* | `button_menu` | ❌ |
|
* | `button_menu` | ❌ |
|
||||||
* | `button_panel` | ❌ |
|
* | `button_panel` | ❌ |
|
||||||
* | `byte_input` | ❌ |
|
* | `byte_input` | ✅ |
|
||||||
* | `dialog_ex` | ✅ (as `dialog`) |
|
* | `dialog_ex` | ✅ (as `dialog`) |
|
||||||
* | `empty_screen` | ✅ |
|
* | `empty_screen` | ✅ |
|
||||||
* | `file_browser` | ❌ |
|
* | `file_browser` | ❌ |
|
||||||
@@ -122,11 +122,26 @@ import type { Contract } from "../event_loop";
|
|||||||
type Properties = { [K: string]: any };
|
type Properties = { [K: string]: any };
|
||||||
|
|
||||||
export declare class View<Props extends Properties> {
|
export declare class View<Props extends Properties> {
|
||||||
|
/**
|
||||||
|
* Assign value to property by name
|
||||||
|
* @param property Name of the property
|
||||||
|
* @param value Value to assign
|
||||||
|
* @version Added in JS SDK 0.1
|
||||||
|
*/
|
||||||
set<P extends keyof Props>(property: P, value: Props[P]): void;
|
set<P extends keyof Props>(property: P, value: Props[P]): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export declare class ViewFactory<Props extends Properties, V extends View<Props>> {
|
export declare class ViewFactory<Props extends Properties, V extends View<Props>> {
|
||||||
|
/**
|
||||||
|
* Create view instance with default values, can be changed later with set()
|
||||||
|
* @version Added in JS SDK 0.1
|
||||||
|
*/
|
||||||
make(): V;
|
make(): V;
|
||||||
|
/**
|
||||||
|
* Create view instance with custom values, can be changed later with set()
|
||||||
|
* @param initial Dictionary of property names to values
|
||||||
|
* @version Added in JS SDK 0.1
|
||||||
|
*/
|
||||||
makeWith(initial: Partial<Props>): V;
|
makeWith(initial: Partial<Props>): V;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,6 +159,11 @@ declare class ViewDispatcher {
|
|||||||
* @version Added in JS SDK 0.1
|
* @version Added in JS SDK 0.1
|
||||||
*/
|
*/
|
||||||
navigation: Contract;
|
navigation: Contract;
|
||||||
|
/**
|
||||||
|
* View object currently shown
|
||||||
|
* @version Added in JS SDK 0.1
|
||||||
|
*/
|
||||||
|
currentView: View<any>;
|
||||||
/**
|
/**
|
||||||
* Sends a number to the custom event handler
|
* Sends a number to the custom event handler
|
||||||
* @param event number to send
|
* @param event number to send
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export declare function success(): void;
|
|||||||
/**
|
/**
|
||||||
* @brief Signals failure to the user via the color LED, speaker and vibration
|
* @brief Signals failure to the user via the color LED, speaker and vibration
|
||||||
* motor
|
* motor
|
||||||
|
* @version Added in JS SDK 0.1
|
||||||
*/
|
*/
|
||||||
export declare function error(): void;
|
export declare function error(): void;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user