Skip to content

Instantly share code, notes, and snippets.

@roman01la
Created November 9, 2025 14:22
Show Gist options
  • Select an option

  • Save roman01la/bc65626625acb3b0ac6dfb960ef8beb7 to your computer and use it in GitHub Desktop.

Select an option

Save roman01la/bc65626625acb3b0ac6dfb960ef8beb7 to your computer and use it in GitHub Desktop.
#include "hermes/VM/static_h.h"
#include <stdlib.h>
static uint32_t unit_index;
static inline SHSymbolID *get_symbols(SHUnit *);
static inline SHWritePropertyCacheEntry *get_write_prop_cache(SHUnit *);
static inline SHReadPropertyCacheEntry *get_read_prop_cache(SHUnit *);
static inline SHPrivateNameCacheEntry *get_private_name_cache(SHUnit *);
static const SHSrcLoc s_source_locations[];
static SHNativeFuncInfo s_function_info_table[];
static SHLegacyValue _0_global(SHRuntime *shr);
// index.js:1:1
static SHLegacyValue _0_global(SHRuntime *shr)
{
_SH_MODEL();
struct
{
SHLocals head;
SHLegacyValue t0;
SHLegacyValue t1;
} locals;
_sh_check_native_stack_overflow(shr);
SHLegacyValue *frame = _sh_enter(shr, &locals.head, 10);
locals.head.count = 2;
SHUnit *shUnit = shr->units[unit_index];
locals.t0 = _sh_ljs_undefined();
locals.t1 = _sh_ljs_undefined();
SHLegacyValue np0 = _sh_ljs_undefined();
SHLegacyValue np1 = _sh_ljs_undefined();
L0:;
locals.t1 = _sh_ljs_get_global_object(shr);
frame[3] = _sh_ljs_try_get_by_id_rjs(shr, &locals.t1, get_symbols(shUnit)[1] /*print*/, get_read_prop_cache(shUnit) + 0);
locals.t1 = _sh_ljs_try_get_by_id_rjs(shr, &locals.t1, get_symbols(shUnit)[2] /*globalThis*/, get_read_prop_cache(shUnit) + 1);
locals.t1 = _sh_ljs_get_by_id_rjs(shr, &locals.t1, get_symbols(shUnit)[3] /*value*/, get_read_prop_cache(shUnit) + 2);
np0 = _sh_ljs_double(1);
locals.t1 = _sh_ljs_add_rjs(shr, &np0, &locals.t1);
if (!(_sh_ljs_is_double(locals.t1)))
_sh_throw_type_error_ascii(shr, "Checked cast failed");
frame[1] = locals.t1;
np0 = _sh_ljs_undefined();
frame[4] = _sh_ljs_undefined();
frame[2] = _sh_ljs_undefined();
locals.t0 = _sh_ljs_call(shr, frame, 1);
_sh_leave(shr, &locals.head, frame);
return np0;
}
static unsigned char s_literal_val_buffer[0] = {};
static unsigned char s_obj_key_buffer[0] = {};
static const SHShapeTableEntry s_obj_shape_table[] = {};
static const SHSrcLoc s_source_locations[] = {
{.filename_idx = 0, .line = 0, .column = 0},
};
static SHNativeFuncInfo s_function_info_table[] = {
{.name_index = 4, .arg_count = 0, .prohibit_invoke = 2, .kind = 0},
};
static const char s_ascii_pool[] = {
'\0',
'p',
'r',
'i',
'n',
't',
'\0',
'g',
'l',
'o',
'b',
'a',
'l',
'T',
'h',
'i',
's',
'\0',
'v',
'a',
'l',
'u',
'e',
'\0',
'g',
'l',
'o',
'b',
'a',
'l',
'\0',
};
static const char16_t s_u16_pool[] = {};
static const uint32_t s_strings[] = {
0,
0,
0,
1,
5,
2794059355,
7,
10,
4077459857,
18,
5,
3746588989,
24,
6,
615793799,
};
#define CREATE_THIS_UNIT sh_export_this_unit struct UnitData
{
SHUnit unit;
SHSymbolID symbol_data[5];
SHWritePropertyCacheEntry write_prop_cache_data[0];
SHReadPropertyCacheEntry read_prop_cache_data[3];
SHPrivateNameCacheEntry private_name_cache_data[0];
SHCompressedPointer object_literal_class_cache[0];
};
SHUnit *CREATE_THIS_UNIT(void)
{
struct UnitData *unit_data = calloc(sizeof(struct UnitData), 1);
*unit_data = (struct UnitData){.unit = {.index = &unit_index, .num_symbols = 5, .num_write_prop_cache_entries = 0, .num_read_prop_cache_entries = 3, .ascii_pool = s_ascii_pool, .u16_pool = s_u16_pool, .strings = s_strings, .symbols = unit_data->symbol_data, .write_prop_cache = unit_data->write_prop_cache_data, .read_prop_cache = unit_data->read_prop_cache_data, .private_name_cache = unit_data->private_name_cache_data, .obj_key_buffer = s_obj_key_buffer, .obj_key_buffer_size = 0, .literal_val_buffer = s_literal_val_buffer, .literal_val_buffer_size = 0, .obj_shape_table = s_obj_shape_table, .obj_shape_table_count = 0, .object_literal_class_cache = unit_data->object_literal_class_cache, .source_locations = s_source_locations, .source_locations_size = 1, .unit_main = _0_global, .unit_main_info = &s_function_info_table[0], .unit_name = "sh_compiled"}};
return (SHUnit *)unit_data;
}
SHSymbolID *get_symbols(SHUnit *unit) { return ((struct UnitData *)unit)->symbol_data; }
SHWritePropertyCacheEntry *get_write_prop_cache(SHUnit *unit) { return ((struct UnitData *)unit)->write_prop_cache_data; }
SHReadPropertyCacheEntry *get_read_prop_cache(SHUnit *unit) { return ((struct UnitData *)unit)->read_prop_cache_data; }
SHPrivateNameCacheEntry *get_private_name_cache(SHUnit *unit) { return ((struct UnitData *)unit)->private_name_cache_data; }
typedef struct SHConsoleContext SHConsoleContext;
SHConsoleContext *init_console_bindings(SHRuntime *shr);
void free_console_context(SHConsoleContext *consoleContext);
bool run_event_loop(SHRuntime *shr, SHConsoleContext *consoleContext);
int main(int argc, char **argv)
{
SHRuntime *shr = _sh_init(argc, argv);
SHConsoleContext *consoleContext = init_console_bindings(shr);
bool success = _sh_initialize_units(shr, 1, CREATE_THIS_UNIT) && run_event_loop(shr, consoleContext);
free_console_context(consoleContext);
_sh_done(shr);
return success ? 0 : 1;
}
#include "hermes/VM/static_h.h"
#include <stdlib.h>
static uint32_t unit_index;
static inline SHSymbolID *get_symbols(SHUnit *);
static inline SHWritePropertyCacheEntry *get_write_prop_cache(SHUnit *);
static inline SHReadPropertyCacheEntry *get_read_prop_cache(SHUnit *);
static inline SHPrivateNameCacheEntry *get_private_name_cache(SHUnit *);
static const SHSrcLoc s_source_locations[];
static SHNativeFuncInfo s_function_info_table[];
static SHLegacyValue _0_global(SHRuntime *shr);
static SHLegacyValue _1_add(SHRuntime *shr);
// index2.js:1:1
static SHLegacyValue _0_global(SHRuntime *shr)
{
_SH_MODEL();
struct
{
SHLocals head;
SHLegacyValue t0;
SHLegacyValue t1;
} locals;
_sh_check_native_stack_overflow(shr);
SHLegacyValue *frame = _sh_enter(shr, &locals.head, 10);
locals.head.count = 2;
SHUnit *shUnit = shr->units[unit_index];
locals.t0 = _sh_ljs_undefined();
locals.t1 = _sh_ljs_undefined();
SHLegacyValue np0 = _sh_ljs_undefined();
SHLegacyValue np1 = _sh_ljs_undefined();
L0:;
_sh_ljs_declare_global_var(shr, get_symbols(shUnit)[1] /*add*/);
locals.t0 = _sh_ljs_get_global_object(shr);
locals.t1 = _sh_ljs_create_closure(shr, NULL, _1_add, &s_function_info_table[1], shUnit);
_sh_ljs_put_by_id_loose_rjs(shr, shUnit, &locals.t0, get_symbols(shUnit)[1] /*add*/, &locals.t1, get_write_prop_cache(shUnit) + 0);
locals.t1 = _sh_ljs_try_get_by_id_rjs(shr, &locals.t0, get_symbols(shUnit)[2] /*print*/, get_read_prop_cache(shUnit) + 0);
frame[3] = _sh_ljs_get_by_id_rjs(shr, &locals.t0, get_symbols(shUnit)[1] /*add*/, get_read_prop_cache(shUnit) + 1);
frame[1] = _sh_ljs_double(1);
np0 = _sh_ljs_undefined();
frame[4] = _sh_ljs_undefined();
frame[2] = _sh_ljs_undefined();
frame[1] = _sh_ljs_call(shr, frame, 1);
frame[4] = _sh_ljs_undefined();
frame[3] = locals.t1;
frame[2] = _sh_ljs_undefined();
locals.t0 = _sh_ljs_call(shr, frame, 1);
_sh_leave(shr, &locals.head, frame);
return locals.t0;
}
// index2.js:1:1
static SHLegacyValue _1_add(SHRuntime *shr)
{
struct
{
SHLocals head;
SHLegacyValue t0;
SHLegacyValue t1;
} locals;
_sh_check_native_stack_overflow(shr);
SHLegacyValue *frame = _sh_enter(shr, &locals.head, 1);
locals.head.count = 2;
SHUnit *shUnit = shr->units[unit_index];
locals.t0 = _sh_ljs_undefined();
locals.t1 = _sh_ljs_undefined();
L0:;
locals.t0 = _sh_ljs_get_global_object(shr);
locals.t0 = _sh_ljs_try_get_by_id_rjs(shr, &locals.t0, get_symbols(shUnit)[3] /*globalThis*/, get_read_prop_cache(shUnit) + 2);
locals.t1 = _sh_ljs_get_by_id_rjs(shr, &locals.t0, get_symbols(shUnit)[4] /*value*/, get_read_prop_cache(shUnit) + 3);
locals.t0 = _sh_ljs_param(frame, 1);
locals.t0 = _sh_ljs_add_rjs(shr, &locals.t0, &locals.t1);
_sh_leave(shr, &locals.head, frame);
return locals.t0;
}
static unsigned char s_literal_val_buffer[0] = {};
static unsigned char s_obj_key_buffer[0] = {};
static const SHShapeTableEntry s_obj_shape_table[] = {};
static const SHSrcLoc s_source_locations[] = {
{.filename_idx = 0, .line = 0, .column = 0},
};
static SHNativeFuncInfo s_function_info_table[] = {
{.name_index = 5, .arg_count = 0, .prohibit_invoke = 2, .kind = 0},
{.name_index = 1, .arg_count = 1, .prohibit_invoke = 2, .kind = 0},
};
static const char s_ascii_pool[] = {
'\0',
'a',
'd',
'd',
'\0',
'p',
'r',
'i',
'n',
't',
'\0',
'g',
'l',
'o',
'b',
'a',
'l',
'T',
'h',
'i',
's',
'\0',
'v',
'a',
'l',
'u',
'e',
'\0',
'g',
'l',
'o',
'b',
'a',
'l',
'\0',
};
static const char16_t s_u16_pool[] = {};
static const uint32_t s_strings[] = {
0,
0,
0,
1,
3,
1492819387,
5,
5,
2794059355,
11,
10,
4077459857,
22,
5,
3746588989,
28,
6,
615793799,
};
#define CREATE_THIS_UNIT sh_export_this_unit struct UnitData
{
SHUnit unit;
SHSymbolID symbol_data[6];
SHWritePropertyCacheEntry write_prop_cache_data[1];
SHReadPropertyCacheEntry read_prop_cache_data[4];
SHPrivateNameCacheEntry private_name_cache_data[0];
SHCompressedPointer object_literal_class_cache[0];
};
SHUnit *CREATE_THIS_UNIT(void)
{
struct UnitData *unit_data = calloc(sizeof(struct UnitData), 1);
*unit_data = (struct UnitData){.unit = {.index = &unit_index, .num_symbols = 6, .num_write_prop_cache_entries = 1, .num_read_prop_cache_entries = 4, .ascii_pool = s_ascii_pool, .u16_pool = s_u16_pool, .strings = s_strings, .symbols = unit_data->symbol_data, .write_prop_cache = unit_data->write_prop_cache_data, .read_prop_cache = unit_data->read_prop_cache_data, .private_name_cache = unit_data->private_name_cache_data, .obj_key_buffer = s_obj_key_buffer, .obj_key_buffer_size = 0, .literal_val_buffer = s_literal_val_buffer, .literal_val_buffer_size = 0, .obj_shape_table = s_obj_shape_table, .obj_shape_table_count = 0, .object_literal_class_cache = unit_data->object_literal_class_cache, .source_locations = s_source_locations, .source_locations_size = 1, .unit_main = _0_global, .unit_main_info = &s_function_info_table[0], .unit_name = "sh_compiled"}};
return (SHUnit *)unit_data;
}
SHSymbolID *get_symbols(SHUnit *unit) { return ((struct UnitData *)unit)->symbol_data; }
SHWritePropertyCacheEntry *get_write_prop_cache(SHUnit *unit) { return ((struct UnitData *)unit)->write_prop_cache_data; }
SHReadPropertyCacheEntry *get_read_prop_cache(SHUnit *unit) { return ((struct UnitData *)unit)->read_prop_cache_data; }
SHPrivateNameCacheEntry *get_private_name_cache(SHUnit *unit) { return ((struct UnitData *)unit)->private_name_cache_data; }
typedef struct SHConsoleContext SHConsoleContext;
SHConsoleContext *init_console_bindings(SHRuntime *shr);
void free_console_context(SHConsoleContext *consoleContext);
bool run_event_loop(SHRuntime *shr, SHConsoleContext *consoleContext);
int main(int argc, char **argv)
{
SHRuntime *shr = _sh_init(argc, argv);
SHConsoleContext *consoleContext = init_console_bindings(shr);
bool success = _sh_initialize_units(shr, 1, CREATE_THIS_UNIT) && run_event_loop(shr, consoleContext);
free_console_context(consoleContext);
_sh_done(shr);
return success ? 0 : 1;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment