MIRROR: javascript for ๐Ÿœ's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

use SLOT_BUFFER for TypedArrayData access

+16 -14
+1
include/config.h
··· 38 38 SLOT_FROZEN, 39 39 SLOT_SEALED, 40 40 SLOT_EXTENSIBLE, 41 + SLOT_BUFFER, 41 42 SLOT_MAX = 255 42 43 } internal_slot_t; 43 44
+1
include/config.h.in
··· 30 30 SLOT_FROZEN, 31 31 SLOT_SEALED, 32 32 SLOT_EXTENSIBLE, 33 + SLOT_BUFFER, 33 34 SLOT_MAX = 255 34 35 } internal_slot_t; 35 36
+1 -1
meson.build
··· 79 79 build_date = run_command('date', '+%Y-%m-%d', check: true).stdout().strip() 80 80 81 81 version_conf = configuration_data() 82 - version_conf.set('ANT_VERSION', '0.2.2.36') 82 + version_conf.set('ANT_VERSION', '0.2.2.38') 83 83 version_conf.set('ANT_GIT_HASH', git_hash) 84 84 version_conf.set('ANT_BUILD_DATE', build_date) 85 85
+1 -1
src/modules/atomics.c
··· 81 81 } 82 82 83 83 static bool get_atomic_array_data(struct js *js, jsval_t this_val, TypedArrayData **out_data, uint8_t **out_ptr) { 84 - jsval_t ta_data_val = js_get(js, this_val, "__ta"); 84 + jsval_t ta_data_val = js_get_slot(js, this_val, SLOT_BUFFER); 85 85 TypedArrayData *ta_data = (TypedArrayData *)js_gettypedarray(ta_data_val); 86 86 if (!ta_data || !ta_data->buffer) return false; 87 87
+8 -8
src/modules/buffer.c
··· 227 227 index = index * 10 + (c - '0'); 228 228 } 229 229 230 - jsval_t ta_val = js_get(js, obj, "__ta"); 230 + jsval_t ta_val = js_get_slot(js, obj, SLOT_BUFFER); 231 231 TypedArrayData *ta_data = (TypedArrayData *)js_gettypedarray(ta_val); 232 232 if (!ta_data || index >= ta_data->length) return js_mkundef(); 233 233 ··· 264 264 index = index * 10 + (c - '0'); 265 265 } 266 266 267 - jsval_t ta_val = js_get(js, obj, "__ta"); 267 + jsval_t ta_val = js_get_slot(js, obj, SLOT_BUFFER); 268 268 TypedArrayData *ta_data = (TypedArrayData *)js_gettypedarray(ta_val); 269 269 if (!ta_data || index >= ta_data->length) return false; 270 270 ··· 302 302 jsval_t proto = js_get_ctor_proto(js, type_name, strlen(type_name)); 303 303 if (js_type(proto) == JS_OBJ) js_set_proto(js, obj, proto); 304 304 305 - js_set(js, obj, "__ta", js_mktypedarray(ta_data)); 305 + js_set_slot(js, obj, SLOT_BUFFER, js_mktypedarray(ta_data)); 306 306 js_set(js, obj, "length", js_mknum((double)length)); 307 307 js_set(js, obj, "byteLength", js_mknum((double)(length * element_size))); 308 308 js_set(js, obj, "byteOffset", js_mknum((double)byte_offset)); ··· 357 357 // TypedArray.prototype.slice(begin, end) 358 358 static jsval_t js_typedarray_slice(struct js *js, jsval_t *args, int nargs) { 359 359 jsval_t this_val = js_getthis(js); 360 - jsval_t ta_data_val = js_get(js, this_val, "__ta"); 360 + jsval_t ta_data_val = js_get_slot(js, this_val, SLOT_BUFFER); 361 361 362 362 TypedArrayData *ta_data = (TypedArrayData *)js_gettypedarray(ta_data_val); 363 363 if (!ta_data) return js_mkerr(js, "Invalid TypedArray"); ··· 391 391 // TypedArray.prototype.subarray(begin, end) 392 392 static jsval_t js_typedarray_subarray(struct js *js, jsval_t *args, int nargs) { 393 393 jsval_t this_val = js_getthis(js); 394 - jsval_t ta_data_val = js_get(js, this_val, "__ta"); 394 + jsval_t ta_data_val = js_get_slot(js, this_val, SLOT_BUFFER); 395 395 396 396 TypedArrayData *ta_data = (TypedArrayData *)js_gettypedarray(ta_data_val); 397 397 if (!ta_data) return js_mkerr(js, "Invalid TypedArray"); ··· 418 418 // TypedArray.prototype.fill(value, start, end) 419 419 static jsval_t js_typedarray_fill(struct js *js, jsval_t *args, int nargs) { 420 420 jsval_t this_val = js_getthis(js); 421 - jsval_t ta_data_val = js_get(js, this_val, "__ta"); 421 + jsval_t ta_data_val = js_get_slot(js, this_val, SLOT_BUFFER); 422 422 423 423 TypedArrayData *ta_data = (TypedArrayData *)js_gettypedarray(ta_data_val); 424 424 if (!ta_data) return js_mkerr(js, "Invalid TypedArray"); ··· 765 765 // Buffer.prototype.toString(encoding) 766 766 static jsval_t js_buffer_toString(struct js *js, jsval_t *args, int nargs) { 767 767 jsval_t this_val = js_getthis(js); 768 - jsval_t ta_data_val = js_get(js, this_val, "__ta"); 768 + jsval_t ta_data_val = js_get_slot(js, this_val, SLOT_BUFFER); 769 769 770 770 TypedArrayData *ta_data = (TypedArrayData *)js_gettypedarray(ta_data_val); 771 771 if (!ta_data) return js_mkerr(js, "Invalid Buffer"); ··· 813 813 if (nargs < 1) return js_mkerr(js, "write requires a string"); 814 814 815 815 jsval_t this_val = js_getthis(js); 816 - jsval_t ta_data_val = js_get(js, this_val, "__ta"); 816 + jsval_t ta_data_val = js_get_slot(js, this_val, SLOT_BUFFER); 817 817 818 818 TypedArrayData *ta_data = (TypedArrayData *)js_gettypedarray(ta_data_val); 819 819 if (!ta_data) return js_mkerr(js, "Invalid Buffer");
+1 -1
src/modules/crypto.c
··· 141 141 return js_mkerr(js, "libsodium initialization failed"); 142 142 } 143 143 144 - jsval_t ta_data_val = js_get(js, args[0], "__ta"); 144 + jsval_t ta_data_val = js_get_slot(js, args[0], SLOT_BUFFER); 145 145 TypedArrayData *ta_data = (TypedArrayData *)js_gettypedarray(ta_data_val); 146 146 if (!ta_data || !ta_data->buffer) { 147 147 return js_mkerr(js, "argument must be a TypedArray");
+3 -3
src/modules/textcodec.c
··· 29 29 if (js_type(arr) == JS_ERR) return arr; 30 30 31 31 if (str_len > 0) { 32 - jsval_t ta_data_val = js_get(js, arr, "__ta"); 32 + jsval_t ta_data_val = js_get_slot(js, arr, SLOT_BUFFER); 33 33 TypedArrayData *ta_data = (TypedArrayData *)js_gettypedarray(ta_data_val); 34 34 if (ta_data && ta_data->buffer && ta_data->buffer->data) memcpy(ta_data->buffer->data, str, str_len); 35 35 } ··· 54 54 } 55 55 } 56 56 57 - jsval_t ta_data_val = js_get(js, args[1], "__ta"); 57 + jsval_t ta_data_val = js_get_slot(js, args[1], SLOT_BUFFER); 58 58 TypedArrayData *ta_data = (TypedArrayData *)js_gettypedarray(ta_data_val); 59 59 if (!ta_data) return js_mkerr(js, "Second argument must be a Uint8Array"); 60 60 ··· 91 91 return js_mkstr(js, "", 0); 92 92 } 93 93 94 - jsval_t ta_data_val = js_get(js, args[0], "__ta"); 94 + jsval_t ta_data_val = js_get_slot(js, args[0], SLOT_BUFFER); 95 95 TypedArrayData *ta_data = (TypedArrayData *)js_gettypedarray(ta_data_val); 96 96 if (ta_data) { 97 97 if (!ta_data->buffer) return js_mkstr(js, "", 0);