Lines Matching refs:tv

952 #define DUK_TVAL_IS_VALID_TAG(tv) \  argument
953 (DUK_TVAL_GET_TAG((tv)) - DUK_TAG_MIN <= DUK_TAG_MAX - DUK_TAG_MIN)
962 #define DUK__TVAL_SET_TAGGEDPOINTER(tv,h,tag) do { \ argument
963 …(tv)->ull[DUK_DBL_IDX_ULL0] = (((duk_uint64_t) (tag)) << 16) | (((duk_uint64_t) (duk_uint32_t) (h)…
966 #define DUK__TVAL_SET_TAGGEDPOINTER(tv,h,tag) do { \ argument
967 …(tv)->ull[DUK_DBL_IDX_ULL0] = (((duk_uint64_t) (tag)) << 48) | ((duk_uint64_t) (duk_uint32_t) (h))…
971 #define DUK__TVAL_SET_TAGGEDPOINTER(tv,h,tag) do { \ argument
973 duk__tv = (tv); \
982 #define DUK__TVAL_SET_LIGHTFUNC(tv,fp,flags) do { \ argument
983 (tv)->ull[DUK_DBL_IDX_ULL0] = (((duk_uint64_t) DUK_TAG_LIGHTFUNC) << 16) | \
988 #define DUK__TVAL_SET_LIGHTFUNC(tv,fp,flags) do { \ argument
989 (tv)->ull[DUK_DBL_IDX_ULL0] = (((duk_uint64_t) DUK_TAG_LIGHTFUNC) << 48) | \
995 #define DUK__TVAL_SET_LIGHTFUNC(tv,fp,flags) do { \ argument
997 duk__tv = (tv); \
1006 #define DUK__TVAL_SET_I48(tv,i) do { \ argument
1008 duk__tv = (tv); \
1012 #define DUK__TVAL_SET_U32(tv,i) do { \ argument
1014 duk__tv = (tv); \
1019 #define DUK__TVAL_SET_I48(tv,i) do { \ argument
1020 …(tv)->ull[DUK_DBL_IDX_ULL0] = (((duk_uint64_t) DUK_TAG_FASTINT) << 48) | (((duk_uint64_t) (i)) & D…
1022 #define DUK__TVAL_SET_U32(tv,i) do { \ argument
1023 (tv)->ull[DUK_DBL_IDX_ULL0] = (((duk_uint64_t) DUK_TAG_FASTINT) << 48) | (duk_uint64_t) (i); \
1028 #define DUK__TVAL_SET_I32(tv,i) do { \ argument
1030 DUK_TVAL_SET_I48((tv), duk__tmp); \
1035 …fine DUK__TVAL_GET_FASTINT(tv) (((duk_int64_t) ((((duk_uint64_t) (tv)->ui[DUK_DBL_IDX_UI0]) <… argument
1037 #define DUK__TVAL_GET_FASTINT(tv) ((((duk_int64_t) (tv)->ull[DUK_DBL_IDX_ULL0]) << 16) >> 16) argument
1039 #define DUK__TVAL_GET_FASTINT_U32(tv) ((tv)->ui[DUK_DBL_IDX_UI1]) argument
1040 #define DUK__TVAL_GET_FASTINT_I32(tv) ((duk_int32_t) (tv)->ui[DUK_DBL_IDX_UI1]) argument
1043 #define DUK_TVAL_SET_UNDEFINED(tv) do { \ argument
1044 (tv)->us[DUK_DBL_IDX_US0] = (duk_uint16_t) DUK_TAG_UNDEFINED; \
1046 #define DUK_TVAL_SET_UNUSED(tv) do { \ argument
1047 (tv)->us[DUK_DBL_IDX_US0] = (duk_uint16_t) DUK_TAG_UNUSED; \
1049 #define DUK_TVAL_SET_NULL(tv) do { \ argument
1050 (tv)->us[DUK_DBL_IDX_US0] = (duk_uint16_t) DUK_TAG_NULL; \
1053 #define DUK_TVAL_SET_BOOLEAN(tv,val) DUK_DBLUNION_SET_HIGH32((tv), (((duk_uint32_t) DUK_TAG… argument
1055 #define DUK_TVAL_SET_NAN(tv) DUK_DBLUNION_SET_NAN_FULL((tv)) argument
1059 #define DUK_TVAL_SET_DOUBLE(tv,d) do { \ argument
1063 DUK_DBLUNION_SET_DOUBLE((tv), duk__dblval); \
1065 #define DUK_TVAL_SET_I48(tv,i) DUK__TVAL_SET_I48((tv), (i)) argument
1066 #define DUK_TVAL_SET_I32(tv,i) DUK__TVAL_SET_I32((tv), (i)) argument
1067 #define DUK_TVAL_SET_U32(tv,i) DUK__TVAL_SET_U32((tv), (i)) argument
1068 #define DUK_TVAL_SET_NUMBER_CHKFAST_FAST(tv,d) duk_tval_set_number_chkfast_fast((tv), (d)) argument
1069 #define DUK_TVAL_SET_NUMBER_CHKFAST_SLOW(tv,d) duk_tval_set_number_chkfast_slow((tv), (d)) argument
1070 #define DUK_TVAL_SET_NUMBER(tv,d) DUK_TVAL_SET_DOUBLE((tv), (d)) argument
1071 #define DUK_TVAL_CHKFAST_INPLACE_FAST(tv) do { \ argument
1074 duk__tv = (tv); \
1080 #define DUK_TVAL_CHKFAST_INPLACE_SLOW(tv) do { \ argument
1083 duk__tv = (tv); \
1090 #define DUK_TVAL_SET_DOUBLE(tv,d) do { \ argument
1094 DUK_DBLUNION_SET_DOUBLE((tv), duk__dblval); \
1096 #define DUK_TVAL_SET_I48(tv,i) DUK_TVAL_SET_DOUBLE((tv), (duk_double_t) (i)) /* XXX:… argument
1097 #define DUK_TVAL_SET_I32(tv,i) DUK_TVAL_SET_DOUBLE((tv), (duk_double_t) (i)) argument
1098 #define DUK_TVAL_SET_U32(tv,i) DUK_TVAL_SET_DOUBLE((tv), (duk_double_t) (i)) argument
1099 #define DUK_TVAL_SET_NUMBER_CHKFAST_FAST(tv,d) DUK_TVAL_SET_DOUBLE((tv), (d)) argument
1100 #define DUK_TVAL_SET_NUMBER_CHKFAST_SLOW(tv,d) DUK_TVAL_SET_DOUBLE((tv), (d)) argument
1101 #define DUK_TVAL_SET_NUMBER(tv,d) DUK_TVAL_SET_DOUBLE((tv), (d)) argument
1102 #define DUK_TVAL_CHKFAST_INPLACE_FAST(tv) do { } while (0) argument
1103 #define DUK_TVAL_CHKFAST_INPLACE_SLOW(tv) do { } while (0) argument
1106 #define DUK_TVAL_SET_FASTINT(tv,i) DUK_TVAL_SET_I48((tv), (i)) /* alias */ argument
1108 #define DUK_TVAL_SET_LIGHTFUNC(tv,fp,flags) DUK__TVAL_SET_LIGHTFUNC((tv), (fp), (flags)) argument
1109 #define DUK_TVAL_SET_STRING(tv,h) DUK__TVAL_SET_TAGGEDPOINTER((tv), (h), DUK_TAG_STRING) argument
1110 #define DUK_TVAL_SET_OBJECT(tv,h) DUK__TVAL_SET_TAGGEDPOINTER((tv), (h), DUK_TAG_OBJECT) argument
1111 #define DUK_TVAL_SET_BUFFER(tv,h) DUK__TVAL_SET_TAGGEDPOINTER((tv), (h), DUK_TAG_BUFFER) argument
1112 #define DUK_TVAL_SET_POINTER(tv,p) DUK__TVAL_SET_TAGGEDPOINTER((tv), (p), DUK_TAG_POINTER) argument
1114 #define DUK_TVAL_SET_TVAL(tv,x) do { *(tv) = *(x); } while (0) argument
1117 #define DUK_TVAL_GET_BOOLEAN(tv) ((duk_small_uint_t) (tv)->us[DUK_DBL_IDX_US1]) argument
1119 #define DUK_TVAL_GET_DOUBLE(tv) ((tv)->d) argument
1120 #define DUK_TVAL_GET_FASTINT(tv) DUK__TVAL_GET_FASTINT((tv)) argument
1121 #define DUK_TVAL_GET_FASTINT_U32(tv) DUK__TVAL_GET_FASTINT_U32((tv)) argument
1122 #define DUK_TVAL_GET_FASTINT_I32(tv) DUK__TVAL_GET_FASTINT_I32((tv)) argument
1123 #define DUK_TVAL_GET_NUMBER(tv) duk_tval_get_number_packed((tv)) argument
1125 #define DUK_TVAL_GET_NUMBER(tv) ((tv)->d) argument
1126 #define DUK_TVAL_GET_DOUBLE(tv) ((tv)->d) argument
1128 #define DUK_TVAL_GET_LIGHTFUNC(tv,out_fp,out_flags) do { \ argument
1129 (out_flags) = (tv)->ui[DUK_DBL_IDX_UI0] & 0xffffUL; \
1130 (out_fp) = (duk_c_function) (tv)->ui[DUK_DBL_IDX_UI1]; \
1132 #define DUK_TVAL_GET_LIGHTFUNC_FUNCPTR(tv) ((duk_c_function) ((tv)->ui[DUK_DBL_IDX_UI1])) argument
1133 #define DUK_TVAL_GET_LIGHTFUNC_FLAGS(tv) (((duk_small_uint_t) (tv)->ui[DUK_DBL_IDX_UI0]) & 0xff… argument
1134 #define DUK_TVAL_GET_STRING(tv) ((duk_hstring *) (tv)->vp[DUK_DBL_IDX_VP1]) argument
1135 #define DUK_TVAL_GET_OBJECT(tv) ((duk_hobject *) (tv)->vp[DUK_DBL_IDX_VP1]) argument
1136 #define DUK_TVAL_GET_BUFFER(tv) ((duk_hbuffer *) (tv)->vp[DUK_DBL_IDX_VP1]) argument
1137 #define DUK_TVAL_GET_POINTER(tv) ((void *) (tv)->vp[DUK_DBL_IDX_VP1]) argument
1138 #define DUK_TVAL_GET_HEAPHDR(tv) ((duk_heaphdr *) (tv)->vp[DUK_DBL_IDX_VP1]) argument
1141 #define DUK_TVAL_GET_TAG(tv) ((duk_small_uint_t) (tv)->us[DUK_DBL_IDX_US0]) argument
1143 #define DUK_TVAL_IS_UNDEFINED(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_UNDEFINED) argument
1144 #define DUK_TVAL_IS_UNUSED(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_UNUSED) argument
1145 #define DUK_TVAL_IS_NULL(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_NULL) argument
1146 #define DUK_TVAL_IS_BOOLEAN(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_BOOLEAN) argument
1147 #define DUK_TVAL_IS_BOOLEAN_TRUE(tv) ((tv)->ui[DUK_DBL_IDX_UI0] == DUK_XTAG_BOOLEAN_TRUE) argument
1148 #define DUK_TVAL_IS_BOOLEAN_FALSE(tv) ((tv)->ui[DUK_DBL_IDX_UI0] == DUK_XTAG_BOOLEAN_FALSE) argument
1149 #define DUK_TVAL_IS_LIGHTFUNC(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_LIGHTFUNC) argument
1150 #define DUK_TVAL_IS_STRING(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_STRING) argument
1151 #define DUK_TVAL_IS_OBJECT(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_OBJECT) argument
1152 #define DUK_TVAL_IS_BUFFER(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_BUFFER) argument
1153 #define DUK_TVAL_IS_POINTER(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_POINTER) argument
1156 #define DUK_TVAL_IS_DOUBLE(tv) (DUK_TVAL_GET_TAG((tv)) <= 0xfff0UL) argument
1157 #define DUK_TVAL_IS_FASTINT(tv) (DUK_TVAL_GET_TAG((tv)) == DUK_TAG_FASTINT) argument
1158 #define DUK_TVAL_IS_NUMBER(tv) (DUK_TVAL_GET_TAG((tv)) <= 0xfff1UL) argument
1160 #define DUK_TVAL_IS_NUMBER(tv) (DUK_TVAL_GET_TAG((tv)) <= 0xfff0UL) argument
1161 #define DUK_TVAL_IS_DOUBLE(tv) DUK_TVAL_IS_NUMBER((tv)) argument
1165 #define DUK_TVAL_IS_HEAP_ALLOCATED(tv) (DUK_TVAL_GET_TAG((tv)) >= DUK_TAG_STRING) argument
1168 DUK_INTERNAL_DECL duk_double_t duk_tval_get_number_packed(duk_tval *tv);
1239 #define DUK_TVAL_IS_VALID_TAG(tv) \ argument
1240 (DUK_TVAL_GET_TAG((tv)) - DUK_TAG_MIN <= DUK_TAG_MAX - DUK_TAG_MIN)
1249 #define DUK_TVAL_SET_UNDEFINED(tv) do { \ argument
1251 duk__tv = (tv); \
1255 #define DUK_TVAL_SET_UNUSED(tv) do { \ argument
1257 duk__tv = (tv); \
1261 #define DUK_TVAL_SET_NULL(tv) do { \ argument
1263 duk__tv = (tv); \
1267 #define DUK_TVAL_SET_BOOLEAN(tv,val) do { \ argument
1269 duk__tv = (tv); \
1275 #define DUK_TVAL_SET_DOUBLE(tv,val) do { \ argument
1280 duk__tv = (tv); \
1284 #define DUK_TVAL_SET_I48(tv,val) do { \ argument
1286 duk__tv = (tv); \
1290 #define DUK_TVAL_SET_U32(tv,val) do { \ argument
1292 duk__tv = (tv); \
1296 #define DUK_TVAL_SET_I32(tv,val) do { \ argument
1298 duk__tv = (tv); \
1302 #define DUK_TVAL_SET_NUMBER_CHKFAST_FAST(tv,d) \ argument
1303 duk_tval_set_number_chkfast_fast((tv), (d))
1304 #define DUK_TVAL_SET_NUMBER_CHKFAST_SLOW(tv,d) \ argument
1305 duk_tval_set_number_chkfast_slow((tv), (d))
1306 #define DUK_TVAL_SET_NUMBER(tv,val) \ argument
1307 DUK_TVAL_SET_DOUBLE((tv), (val))
1308 #define DUK_TVAL_CHKFAST_INPLACE_FAST(tv) do { \ argument
1311 duk__tv = (tv); \
1317 #define DUK_TVAL_CHKFAST_INPLACE_SLOW(tv) do { \ argument
1320 duk__tv = (tv); \
1327 #define DUK_TVAL_SET_DOUBLE(tv,d) \ argument
1328 DUK_TVAL_SET_NUMBER((tv), (d))
1329 #define DUK_TVAL_SET_I48(tv,val) \ argument
1330 DUK_TVAL_SET_NUMBER((tv), (duk_double_t) (val)) /* XXX: fast int-to-double */
1331 #define DUK_TVAL_SET_U32(tv,val) \ argument
1332 DUK_TVAL_SET_NUMBER((tv), (duk_double_t) (val))
1333 #define DUK_TVAL_SET_I32(tv,val) \ argument
1334 DUK_TVAL_SET_NUMBER((tv), (duk_double_t) (val))
1335 #define DUK_TVAL_SET_NUMBER(tv,val) do { \ argument
1340 duk__tv = (tv); \
1344 #define DUK_TVAL_SET_NUMBER_CHKFAST_FAST(tv,d) \ argument
1345 DUK_TVAL_SET_NUMBER((tv), (d))
1346 #define DUK_TVAL_SET_NUMBER_CHKFAST_SLOW(tv,d) \ argument
1347 DUK_TVAL_SET_NUMBER((tv), (d))
1348 #define DUK_TVAL_CHKFAST_INPLACE_FAST(tv) do { } while (0) argument
1349 #define DUK_TVAL_CHKFAST_INPLACE_SLOW(tv) do { } while (0) argument
1352 #define DUK_TVAL_SET_FASTINT(tv,i) \ argument
1353 DUK_TVAL_SET_I48((tv), (i)) /* alias */
1355 #define DUK_TVAL_SET_POINTER(tv,hptr) do { \ argument
1357 duk__tv = (tv); \
1362 #define DUK_TVAL_SET_LIGHTFUNC(tv,fp,flags) do { \ argument
1364 duk__tv = (tv); \
1370 #define DUK_TVAL_SET_STRING(tv,hptr) do { \ argument
1372 duk__tv = (tv); \
1377 #define DUK_TVAL_SET_OBJECT(tv,hptr) do { \ argument
1379 duk__tv = (tv); \
1384 #define DUK_TVAL_SET_BUFFER(tv,hptr) do { \ argument
1386 duk__tv = (tv); \
1391 #define DUK_TVAL_SET_NAN(tv) do { \ argument
1394 duk__tv = (tv); \
1399 #define DUK_TVAL_SET_TVAL(tv,x) do { *(tv) = *(x); } while (0) argument
1402 #define DUK_TVAL_GET_BOOLEAN(tv) ((duk_small_uint_t) (tv)->v.i) argument
1404 #define DUK_TVAL_GET_DOUBLE(tv) ((tv)->v.d) argument
1405 #define DUK_TVAL_GET_FASTINT(tv) ((tv)->v.fi) argument
1406 #define DUK_TVAL_GET_FASTINT_U32(tv) ((duk_uint32_t) ((tv)->v.fi)) argument
1407 #define DUK_TVAL_GET_FASTINT_I32(tv) ((duk_int32_t) ((tv)->v.fi)) argument
1409 #define DUK_TVAL_GET_NUMBER(tv) (DUK_TVAL_IS_FASTINT((tv)) ? \
1410 (duk_double_t) DUK_TVAL_GET_FASTINT((tv)) : \
1411 DUK_TVAL_GET_DOUBLE((tv)))
1412 #define DUK_TVAL_GET_NUMBER(tv) duk_tval_get_number_unpacked((tv))
1415 #define DUK_TVAL_GET_NUMBER(tv) (DUK_TVAL_IS_FASTINT((tv)) ? \ argument
1416 duk_tval_get_number_unpacked_fastint((tv)) : \
1417 DUK_TVAL_GET_DOUBLE((tv)))
1420 #define DUK_TVAL_GET_NUMBER(tv) ((tv)->v.d) argument
1421 #define DUK_TVAL_GET_DOUBLE(tv) ((tv)->v.d) argument
1423 #define DUK_TVAL_GET_POINTER(tv) ((tv)->v.voidptr) argument
1424 #define DUK_TVAL_GET_LIGHTFUNC(tv,out_fp,out_flags) do { \ argument
1425 (out_flags) = (duk_uint32_t) (tv)->v_extra; \
1426 (out_fp) = (tv)->v.lightfunc; \
1428 #define DUK_TVAL_GET_LIGHTFUNC_FUNCPTR(tv) ((tv)->v.lightfunc) argument
1429 #define DUK_TVAL_GET_LIGHTFUNC_FLAGS(tv) ((duk_small_uint_t) ((tv)->v_extra)) argument
1430 #define DUK_TVAL_GET_STRING(tv) ((tv)->v.hstring) argument
1431 #define DUK_TVAL_GET_OBJECT(tv) ((tv)->v.hobject) argument
1432 #define DUK_TVAL_GET_BUFFER(tv) ((tv)->v.hbuffer) argument
1433 #define DUK_TVAL_GET_HEAPHDR(tv) ((tv)->v.heaphdr) argument
1436 #define DUK_TVAL_GET_TAG(tv) ((tv)->t) argument
1437 #define DUK_TVAL_IS_UNDEFINED(tv) ((tv)->t == DUK_TAG_UNDEFINED) argument
1438 #define DUK_TVAL_IS_UNUSED(tv) ((tv)->t == DUK_TAG_UNUSED) argument
1439 #define DUK_TVAL_IS_NULL(tv) ((tv)->t == DUK_TAG_NULL) argument
1440 #define DUK_TVAL_IS_BOOLEAN(tv) ((tv)->t == DUK_TAG_BOOLEAN) argument
1441 #define DUK_TVAL_IS_BOOLEAN_TRUE(tv) (((tv)->t == DUK_TAG_BOOLEAN) && ((tv)->v.i != 0)) argument
1442 #define DUK_TVAL_IS_BOOLEAN_FALSE(tv) (((tv)->t == DUK_TAG_BOOLEAN) && ((tv)->v.i == 0)) argument
1444 #define DUK_TVAL_IS_DOUBLE(tv) ((tv)->t == DUK_TAG_NUMBER) argument
1445 #define DUK_TVAL_IS_FASTINT(tv) ((tv)->t == DUK_TAG_FASTINT) argument
1446 #define DUK_TVAL_IS_NUMBER(tv) ((tv)->t == DUK_TAG_NUMBER || \ argument
1447 (tv)->t == DUK_TAG_FASTINT)
1449 #define DUK_TVAL_IS_NUMBER(tv) ((tv)->t == DUK_TAG_NUMBER) argument
1450 #define DUK_TVAL_IS_DOUBLE(tv) DUK_TVAL_IS_NUMBER((tv)) argument
1452 #define DUK_TVAL_IS_POINTER(tv) ((tv)->t == DUK_TAG_POINTER) argument
1453 #define DUK_TVAL_IS_LIGHTFUNC(tv) ((tv)->t == DUK_TAG_LIGHTFUNC) argument
1454 #define DUK_TVAL_IS_STRING(tv) ((tv)->t == DUK_TAG_STRING) argument
1455 #define DUK_TVAL_IS_OBJECT(tv) ((tv)->t == DUK_TAG_OBJECT) argument
1456 #define DUK_TVAL_IS_BUFFER(tv) ((tv)->t == DUK_TAG_BUFFER) argument
1464 #define DUK_TVAL_IS_HEAP_ALLOCATED(tv) ((tv)->t >= DUK_TAG_STRING)
1466 #define DUK_TVAL_IS_HEAP_ALLOCATED(tv) ((tv)->t & 0x08) argument
1470 DUK_INTERNAL_DECL duk_double_t duk_tval_get_number_unpacked(duk_tval *tv);
1472 DUK_INTERNAL_DECL duk_double_t duk_tval_get_number_unpacked_fastint(duk_tval *tv);
1481 #define DUK_TVAL_SET_BOOLEAN_TRUE(tv) DUK_TVAL_SET_BOOLEAN((tv), 1) argument
1482 #define DUK_TVAL_SET_BOOLEAN_FALSE(tv) DUK_TVAL_SET_BOOLEAN((tv), 0) argument
1484 #define DUK_TVAL_STRING_IS_SYMBOL(tv) \ argument
1485 DUK_HSTRING_HAS_SYMBOL(DUK_TVAL_GET_STRING((tv)))
1514 DUK_INTERNAL_DECL void duk_tval_set_number_chkfast_fast(duk_tval *tv, duk_double_t x);
1515 DUK_INTERNAL_DECL void duk_tval_set_number_chkfast_slow(duk_tval *tv, duk_double_t x);
1519 DUK_INTERNAL_DECL void duk_tval_assert_valid(duk_tval *tv);
1520 #define DUK_TVAL_ASSERT_VALID(tv) do { duk_tval_assert_valid((tv)); } while (0) argument
1522 #define DUK_TVAL_ASSERT_VALID(tv) do {} while (0) argument
5474 #define DUK_TVAL_NEEDS_REFCOUNT_UPDATE(tv) \ argument
5475 (DUK_TVAL_IS_HEAP_ALLOCATED((tv)) && !DUK_HEAPHDR_HAS_READONLY(DUK_TVAL_GET_HEAPHDR((tv))))
5479 #define DUK_TVAL_NEEDS_REFCOUNT_UPDATE(tv) DUK_TVAL_IS_HEAP_ALLOCATED((tv)) argument
5488 #define DUK_TVAL_INCREF_FAST(thr,tv) do { \ argument
5489 duk_tval *duk__tv = (tv); \
5499 #define DUK_TVAL_DECREF_FAST(thr,tv) do { \ argument
5500 duk_tval *duk__tv = (tv); \
5512 #define DUK_TVAL_DECREF_NORZ_FAST(thr,tv) do { \ argument
5513 duk_tval *duk__tv = (tv); \
5553 #define DUK_TVAL_INCREF_SLOW(thr,tv) do { duk_tval_incref((tv)); } while (0) argument
5554 #define DUK_TVAL_DECREF_SLOW(thr,tv) do { duk_tval_decref((thr), (tv)); } while (0) argument
5555 #define DUK_TVAL_DECREF_NORZ_SLOW(thr,tv) do { duk_tval_decref_norz((thr), (tv)); } while (0) argument
5577 #define DUK_TVAL_INCREF(thr,tv) DUK_TVAL_INCREF_FAST((thr),(tv)) argument
5578 #define DUK_TVAL_DECREF(thr,tv) DUK_TVAL_DECREF_FAST((thr),(tv)) argument
5579 #define DUK_TVAL_DECREF_NORZ(thr,tv) DUK_TVAL_DECREF_NORZ_FAST((thr),(tv)) argument
5605 #define DUK_TVAL_INCREF(thr,tv) DUK_TVAL_INCREF_SLOW((thr),(tv)) argument
5606 #define DUK_TVAL_DECREF(thr,tv) DUK_TVAL_DECREF_SLOW((thr),(tv)) argument
5607 #define DUK_TVAL_DECREF_NORZ(thr,tv) DUK_TVAL_DECREF_NORZ_SLOW((thr),(tv)) argument
5916 #define DUK_TVAL_NEEDS_REFCOUNT_UPDATE(tv) 0 argument
6170 DUK_INTERNAL_DECL void duk_tval_incref(duk_tval *tv);
6171 DUK_INTERNAL_DECL void duk_tval_decref(duk_hthread *thr, duk_tval *tv);
6172 DUK_INTERNAL_DECL void duk_tval_decref_norz(duk_hthread *thr, duk_tval *tv);
6249 DUK_INTERNAL_DECL duk_int_t duk_get_type_tval(duk_tval *tv);
6250 DUK_INTERNAL_DECL duk_uint_t duk_get_type_mask_tval(duk_tval *tv);
6260 DUK_INTERNAL_DECL void duk_push_tval(duk_hthread *thr, duk_tval *tv);
6303 DUK_INTERNAL_DECL duk_bool_t duk_is_callable_tval(duk_hthread *thr, duk_tval *tv);
6338 DUK_INTERNAL_DECL duk_double_t duk_to_number_tval(duk_hthread *thr, duk_tval *tv);
6354 DUK_INTERNAL_DECL void duk_push_class_string_tval(duk_hthread *thr, duk_tval *tv, duk_bool_t avoid_…
6402 DUK_INTERNAL_DECL void duk_push_lightfunc_name(duk_hthread *thr, duk_tval *tv);
6403 DUK_INTERNAL_DECL void duk_push_lightfunc_tostring(duk_hthread *thr, duk_tval *tv);
6415 DUK_INTERNAL_DECL const char *duk_push_string_tval_readable(duk_hthread *thr, duk_tval *tv);
6416 DUK_INTERNAL_DECL const char *duk_push_string_tval_readable_error(duk_hthread *thr, duk_tval *tv);
10000 DUK_INTERNAL_DECL void duk_debug_write_tval(duk_hthread *thr, duk_tval *tv);
10616 #define DUK_ASSERT_REFCOUNT_NONZERO_TVAL(tv) do { \ argument
10617 if ((tv) != NULL && DUK_TVAL_IS_HEAP_ALLOCATED((tv))) { \
10618 DUK_ASSERT(DUK_HEAPHDR_GET_REFCOUNT(DUK_TVAL_GET_HEAPHDR((tv))) > 0); \
10623 #define DUK_ASSERT_REFCOUNT_NONZERO_TVAL(tv) /* no refcount check */ argument
11126 DUK_INTERNAL_DECL duk_bool_t duk_js_toboolean(duk_tval *tv);
11127 DUK_INTERNAL_DECL duk_double_t duk_js_tonumber(duk_hthread *thr, duk_tval *tv);
11129 DUK_INTERNAL_DECL duk_double_t duk_js_tointeger(duk_hthread *thr, duk_tval *tv);
11130 DUK_INTERNAL_DECL duk_uint32_t duk_js_touint32(duk_hthread *thr, duk_tval *tv);
11131 DUK_INTERNAL_DECL duk_int32_t duk_js_toint32(duk_hthread *thr, duk_tval *tv);
11132 DUK_INTERNAL_DECL duk_uint16_t duk_js_touint16(duk_hthread *thr, duk_tval *tv);
11152 DUK_INTERNAL_DECL duk_bool_t duk_js_isarray(duk_tval *tv);
19625 duk_tval *tv; in duk__dump_string_prop() local
19627 tv = duk_hobject_find_entry_tval_ptr_stridx(thr->heap, (duk_hobject *) func, stridx); in duk__dump_string_prop()
19628 if (tv != NULL && DUK_TVAL_IS_STRING(tv)) { in duk__dump_string_prop()
19629 h_str = DUK_TVAL_GET_STRING(tv); in duk__dump_string_prop()
19642 duk_tval *tv; in duk__dump_buffer_prop() local
19644 tv = duk_hobject_find_entry_tval_ptr_stridx(thr->heap, (duk_hobject *) func, stridx); in duk__dump_buffer_prop()
19645 if (tv != NULL && DUK_TVAL_IS_BUFFER(tv)) { in duk__dump_buffer_prop()
19647 h_buf = DUK_TVAL_GET_BUFFER(tv); in duk__dump_buffer_prop()
19660 duk_tval *tv; in duk__dump_uint32_prop() local
19663 tv = duk_hobject_find_entry_tval_ptr_stridx(thr->heap, (duk_hobject *) func, stridx); in duk__dump_uint32_prop()
19664 if (tv != NULL && DUK_TVAL_IS_NUMBER(tv)) { in duk__dump_uint32_prop()
19665 val = (duk_uint32_t) DUK_TVAL_GET_NUMBER(tv); in duk__dump_uint32_prop()
19758 duk_tval *tv, *tv_end; in duk__dump_func() local
19832 tv = DUK_HCOMPFUNC_GET_CONSTS_BASE(thr->heap, func); in duk__dump_func()
19834 while (tv != tv_end) { in duk__dump_func()
19836 DUK_ASSERT(DUK_TVAL_IS_STRING(tv) || in duk__dump_func()
19837 DUK_TVAL_IS_NUMBER(tv)); in duk__dump_func()
19839 if (DUK_TVAL_IS_STRING(tv)) { in duk__dump_func()
19840 h_str = DUK_TVAL_GET_STRING(tv); in duk__dump_func()
19847 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv)); in duk__dump_func()
19850 d = DUK_TVAL_GET_NUMBER(tv); in duk__dump_func()
19853 tv++; in duk__dump_func()
20734 duk_tval *tv = &act->tv_func; in duk_get_current_magic() local
20736 lf_flags = DUK_TVAL_GET_LIGHTFUNC_FLAGS(tv); in duk_get_current_magic()
20750 duk_tval *tv; in duk_get_magic() local
20755 tv = duk_require_tval(thr, idx); in duk_get_magic()
20756 if (DUK_TVAL_IS_OBJECT(tv)) { in duk_get_magic()
20757 h = DUK_TVAL_GET_OBJECT(tv); in duk_get_magic()
20763 } else if (DUK_TVAL_IS_LIGHTFUNC(tv)) { in duk_get_magic()
20764 duk_small_uint_t lf_flags = DUK_TVAL_GET_LIGHTFUNC_FLAGS(tv); in duk_get_magic()
20792 duk_tval *tv; in duk_resolve_nonbound_function() local
20796 tv = DUK_GET_TVAL_NEGIDX(thr, -1); in duk_resolve_nonbound_function()
20797 if (DUK_TVAL_IS_OBJECT(tv)) { in duk_resolve_nonbound_function()
20800 h = DUK_TVAL_GET_OBJECT(tv); in duk_resolve_nonbound_function()
20806 DUK_TVAL_SET_TVAL(tv, &((duk_hboundfunc *) h)->target); in duk_resolve_nonbound_function()
20807 DUK_TVAL_INCREF(thr, tv); in duk_resolve_nonbound_function()
22082 duk_tval *tv = DUK_GET_TVAL_POSIDX(thr, idx); in duk_debugger_notify() local
22083 duk_debug_write_tval(thr, tv); in duk_debugger_notify()
22444 duk_tval *tv; in duk_inspect_value() local
22458 tv = duk_get_tval_or_unused(thr, idx); in duk_inspect_value()
22459 h = (DUK_TVAL_IS_HEAP_ALLOCATED(tv) ? DUK_TVAL_GET_HEAPHDR(tv) : NULL); in duk_inspect_value()
22461 vals[DUK__IDX_TYPE] = duk_get_type_tval(tv); in duk_inspect_value()
22462 vals[DUK__IDX_ITAG] = (duk_int_t) DUK_TVAL_GET_TAG(tv); in duk_inspect_value()
22465 tv = NULL; in duk_inspect_value()
23369 duk_tval *tv; in duk_seal_freeze_raw() local
23374 tv = duk_require_tval(thr, obj_idx); in duk_seal_freeze_raw()
23375 DUK_ASSERT(tv != NULL); in duk_seal_freeze_raw()
23383 switch (DUK_TVAL_GET_TAG(tv)) { in duk_seal_freeze_raw()
23396 h = DUK_TVAL_GET_OBJECT(tv); in duk_seal_freeze_raw()
23456 duk_tval *tv; in duk_put_number_list() local
23463 tv = thr->valstack_top++; in duk_put_number_list()
23464 DUK_ASSERT(DUK_TVAL_IS_UNDEFINED(tv)); /* value stack init policy */ in duk_put_number_list()
23465 DUK_TVAL_SET_NUMBER_CHKFAST_SLOW(tv, ent->value); /* no need for decref/incref */ in duk_put_number_list()
23891 duk_tval *tv; in duk__api_coerce_d2i() local
23895 tv = duk_get_tval_or_unused(thr, idx); in duk__api_coerce_d2i()
23896 DUK_ASSERT(tv != NULL); in duk__api_coerce_d2i()
23912 if (DUK_TVAL_IS_FASTINT(tv)) { in duk__api_coerce_d2i()
23913 duk_int64_t t = DUK_TVAL_GET_FASTINT(tv); in duk__api_coerce_d2i()
23926 if (DUK_TVAL_IS_NUMBER(tv)) { in duk__api_coerce_d2i()
23927 d = DUK_TVAL_GET_NUMBER(tv); in duk__api_coerce_d2i()
23952 duk_tval *tv; in duk__api_coerce_d2ui() local
23958 tv = duk_get_tval_or_unused(thr, idx); in duk__api_coerce_d2ui()
23959 DUK_ASSERT(tv != NULL); in duk__api_coerce_d2ui()
23962 if (DUK_TVAL_IS_FASTINT(tv)) { in duk__api_coerce_d2ui()
23963 duk_int64_t t = DUK_TVAL_GET_FASTINT(tv); in duk__api_coerce_d2ui()
23977 if (DUK_TVAL_IS_NUMBER(tv)) { in duk__api_coerce_d2ui()
23978 d = DUK_TVAL_GET_NUMBER(tv); in duk__api_coerce_d2ui()
24110 duk_tval *tv; in duk_get_tval_or_unused() local
24114 tv = duk_get_tval(thr, idx); in duk_get_tval_or_unused()
24115 if (tv != NULL) { in duk_get_tval_or_unused()
24116 return tv; in duk_get_tval_or_unused()
24203 duk_tval *tv; in duk_set_top() local
24254 tv = thr->valstack_top + count; in duk_set_top()
24255 DUK_ASSERT(DUK_TVAL_IS_UNDEFINED(tv)); in duk_set_top()
24267 tv = thr->valstack_top; in duk_set_top()
24268 tv_end = tv - count; in duk_set_top()
24269 DUK_ASSERT(tv > tv_end); /* Because count > 0. */ in duk_set_top()
24271 tv--; in duk_set_top()
24272 DUK_ASSERT(tv >= thr->valstack_bottom); in duk_set_top()
24273 DUK_TVAL_SET_UNDEFINED_UPDREF_NORZ(thr, tv); in duk_set_top()
24274 } while (tv != tv_end); in duk_set_top()
24282 tv = thr->valstack_top; in duk_set_top()
24283 tv_end = tv - count; in duk_set_top()
24284 DUK_ASSERT(tv > tv_end); in duk_set_top()
24286 tv--; in duk_set_top()
24287 DUK_TVAL_SET_UNDEFINED(tv); in duk_set_top()
24288 } while (tv != tv_end); in duk_set_top()
24305 duk_tval *tv; in duk_set_top_unsafe() local
24325 tv = thr->valstack_top + count; in duk_set_top_unsafe()
24326 DUK_ASSERT(DUK_TVAL_IS_UNDEFINED(tv)); in duk_set_top_unsafe()
24338 tv = thr->valstack_top; in duk_set_top_unsafe()
24339 tv_end = tv - count; in duk_set_top_unsafe()
24340 DUK_ASSERT(tv > tv_end); /* Because count > 0. */ in duk_set_top_unsafe()
24342 tv--; in duk_set_top_unsafe()
24343 DUK_ASSERT(tv >= thr->valstack_bottom); in duk_set_top_unsafe()
24344 DUK_TVAL_SET_UNDEFINED_UPDREF_NORZ(thr, tv); in duk_set_top_unsafe()
24345 } while (tv != tv_end); in duk_set_top_unsafe()
24353 tv = thr->valstack_top; in duk_set_top_unsafe()
24354 tv_end = tv - count; in duk_set_top_unsafe()
24355 DUK_ASSERT(tv > tv_end); in duk_set_top_unsafe()
24357 tv--; in duk_set_top_unsafe()
24358 DUK_TVAL_SET_UNDEFINED(tv); in duk_set_top_unsafe()
24359 } while (tv != tv_end); in duk_set_top_unsafe()
24642 duk_tval *tv; in duk_valstack_grow_check_throw() local
24644 tv = (duk_tval *) (void *) ((duk_uint8_t *) thr->valstack + min_bytes); in duk_valstack_grow_check_throw()
24645 if (DUK_LIKELY(thr->valstack_end >= tv)) { in duk_valstack_grow_check_throw()
24648 if (DUK_LIKELY(thr->valstack_alloc_end >= tv)) { in duk_valstack_grow_check_throw()
24652 thr->valstack_end = tv; in duk_valstack_grow_check_throw()
24660 duk_tval *tv; in duk_valstack_grow_check_nothrow() local
24662 tv = (duk_tval *) (void *) ((duk_uint8_t *) thr->valstack + min_bytes); in duk_valstack_grow_check_nothrow()
24663 if (DUK_LIKELY(thr->valstack_end >= tv)) { in duk_valstack_grow_check_nothrow()
24666 if (DUK_LIKELY(thr->valstack_alloc_end >= tv)) { in duk_valstack_grow_check_nothrow()
24667 thr->valstack_end = tv; in duk_valstack_grow_check_nothrow()
24967 duk_tval *tv, *tv_end; in duk_insert_undefined_n() local
24973 tv = duk_reserve_gap(thr, idx, count); in duk_insert_undefined_n()
24974 tv_end = tv + count; in duk_insert_undefined_n()
24975 while (tv != tv_end) { in duk_insert_undefined_n()
24976 DUK_TVAL_SET_UNDEFINED(tv); in duk_insert_undefined_n()
24977 tv++; in duk_insert_undefined_n()
25117 duk_tval *tv; in duk_remove_n()
25130 for (tv = tv_dst; tv < tv_src; tv++) { in duk_remove_n()
25131 DUK_TVAL_DECREF_NORZ(thr, tv); in duk_remove_n()
25137 for (tv = tv_newtop; tv < thr->valstack_top; tv++) { in duk_remove_n()
25138 DUK_TVAL_SET_UNDEFINED(tv); in duk_remove_n()
25265 duk_tval *tv; in duk_require_undefined() local
25269 tv = duk_get_tval_or_unused(thr, idx); in duk_require_undefined()
25270 DUK_ASSERT(tv != NULL); in duk_require_undefined()
25271 if (DUK_UNLIKELY(!DUK_TVAL_IS_UNDEFINED(tv))) { in duk_require_undefined()
25278 duk_tval *tv; in duk_require_null() local
25282 tv = duk_get_tval_or_unused(thr, idx); in duk_require_null()
25283 DUK_ASSERT(tv != NULL); in duk_require_null()
25284 if (DUK_UNLIKELY(!DUK_TVAL_IS_NULL(tv))) { in duk_require_null()
25292 duk_tval *tv; in duk__get_boolean_raw() local
25296 tv = duk_get_tval_or_unused(thr, idx); in duk__get_boolean_raw()
25297 DUK_ASSERT(tv != NULL); in duk__get_boolean_raw()
25298 if (DUK_TVAL_IS_BOOLEAN(tv)) { in duk__get_boolean_raw()
25299 ret = DUK_TVAL_GET_BOOLEAN(tv); in duk__get_boolean_raw()
25322 duk_tval *tv; in duk_require_boolean() local
25327 tv = duk_get_tval_or_unused(thr, idx); in duk_require_boolean()
25328 DUK_ASSERT(tv != NULL); in duk_require_boolean()
25329 if (DUK_LIKELY(DUK_TVAL_IS_BOOLEAN(tv))) { in duk_require_boolean()
25330 ret = DUK_TVAL_GET_BOOLEAN(tv); in duk_require_boolean()
25350 duk_tval *tv; in duk__get_number_raw() local
25354 tv = duk_get_tval_or_unused(thr, idx); in duk__get_number_raw()
25355 DUK_ASSERT(tv != NULL); in duk__get_number_raw()
25357 if (DUK_TVAL_IS_FASTINT(tv)) { in duk__get_number_raw()
25358 ret.d = (duk_double_t) DUK_TVAL_GET_FASTINT(tv); /* XXX: cast trick */ in duk__get_number_raw()
25362 if (DUK_TVAL_IS_DOUBLE(tv)) { in duk__get_number_raw()
25367 ret.d = DUK_TVAL_GET_DOUBLE(tv); in duk__get_number_raw()
25388 duk_tval *tv; in duk_require_number() local
25393 tv = duk_get_tval_or_unused(thr, idx); in duk_require_number()
25394 DUK_ASSERT(tv != NULL); in duk_require_number()
25395 if (DUK_UNLIKELY(!DUK_TVAL_IS_NUMBER(tv))) { in duk_require_number()
25400 ret.d = DUK_TVAL_GET_NUMBER(tv); in duk_require_number()
25621 duk_tval *tv; in duk_require_object() local
25625 tv = duk_get_tval_or_unused(thr, idx); in duk_require_object()
25626 DUK_ASSERT(tv != NULL); in duk_require_object()
25627 if (DUK_UNLIKELY(!DUK_TVAL_IS_OBJECT(tv))) { in duk_require_object()
25634 duk_tval *tv; in duk__get_pointer_raw() local
25639 tv = duk_get_tval_or_unused(thr, idx); in duk__get_pointer_raw()
25640 DUK_ASSERT(tv != NULL); in duk__get_pointer_raw()
25641 if (!DUK_TVAL_IS_POINTER(tv)) { in duk__get_pointer_raw()
25645 p = DUK_TVAL_GET_POINTER(tv); /* may be NULL */ in duk__get_pointer_raw()
25669 duk_tval *tv; in duk_require_pointer() local
25677 tv = duk_get_tval_or_unused(thr, idx); in duk_require_pointer()
25678 DUK_ASSERT(tv != NULL); in duk_require_pointer()
25679 if (DUK_UNLIKELY(!DUK_TVAL_IS_POINTER(tv))) { in duk_require_pointer()
25683 p = DUK_TVAL_GET_POINTER(tv); /* may be NULL */ in duk_require_pointer()
25689 duk_tval *tv;
25694 tv = duk_get_tval_or_unused(thr, idx);
25695 DUK_ASSERT(tv != NULL);
25696 if (!DUK_TVAL_IS_HEAP_ALLOCATED(tv)) {
25700 h = DUK_TVAL_GET_HEAPHDR(tv);
25710 duk_tval *tv; in duk__get_buffer_helper() local
25718 tv = duk_get_tval_or_unused(thr, idx); in duk__get_buffer_helper()
25719 DUK_ASSERT(tv != NULL); in duk__get_buffer_helper()
25720 if (DUK_LIKELY(DUK_TVAL_IS_BUFFER(tv))) { in duk__get_buffer_helper()
25721 h = DUK_TVAL_GET_BUFFER(tv); in duk__get_buffer_helper()
25777 duk_tval *tv; in duk_get_buffer_data_raw() local
25788 tv = duk_get_tval_or_unused(thr, idx); in duk_get_buffer_data_raw()
25789 DUK_ASSERT(tv != NULL); in duk_get_buffer_data_raw()
25791 if (DUK_TVAL_IS_BUFFER(tv)) { in duk_get_buffer_data_raw()
25792 duk_hbuffer *h = DUK_TVAL_GET_BUFFER(tv); in duk_get_buffer_data_raw()
25803 else if (DUK_TVAL_IS_OBJECT(tv)) { in duk_get_buffer_data_raw()
25804 duk_hobject *h = DUK_TVAL_GET_OBJECT(tv); in duk_get_buffer_data_raw()
25871 duk_tval *tv; in duk__get_tagged_heaphdr_raw() local
25876 tv = duk_get_tval_or_unused(thr, idx); in duk__get_tagged_heaphdr_raw()
25877 DUK_ASSERT(tv != NULL); in duk__get_tagged_heaphdr_raw()
25878 if (DUK_TVAL_GET_TAG(tv) != tag) { in duk__get_tagged_heaphdr_raw()
25882 ret = DUK_TVAL_GET_HEAPHDR(tv); in duk__get_tagged_heaphdr_raw()
26043 duk_tval *tv; in duk_get_c_function() local
26049 tv = duk_get_tval_or_unused(thr, idx); in duk_get_c_function()
26050 DUK_ASSERT(tv != NULL); in duk_get_c_function()
26051 if (DUK_UNLIKELY(!DUK_TVAL_IS_OBJECT(tv))) { in duk_get_c_function()
26054 h = DUK_TVAL_GET_OBJECT(tv); in duk_get_c_function()
26157 duk_tval *tv; in duk_get_heapptr() local
26162 tv = duk_get_tval_or_unused(thr, idx); in duk_get_heapptr()
26163 DUK_ASSERT(tv != NULL); in duk_get_heapptr()
26164 if (DUK_UNLIKELY(!DUK_TVAL_IS_HEAP_ALLOCATED(tv))) { in duk_get_heapptr()
26168 ret = (void *) DUK_TVAL_GET_HEAPHDR(tv); in duk_get_heapptr()
26196 duk_tval *tv; in duk_require_heapptr() local
26201 tv = duk_get_tval_or_unused(thr, idx); in duk_require_heapptr()
26202 DUK_ASSERT(tv != NULL); in duk_require_heapptr()
26203 if (DUK_UNLIKELY(!DUK_TVAL_IS_HEAP_ALLOCATED(tv))) { in duk_require_heapptr()
26208 ret = (void *) DUK_TVAL_GET_HEAPHDR(tv); in duk_require_heapptr()
26306 duk_tval *tv; in duk_get_length() local
26310 tv = duk_get_tval_or_unused(thr, idx); in duk_get_length()
26311 DUK_ASSERT(tv != NULL); in duk_get_length()
26313 switch (DUK_TVAL_GET_TAG(tv)) { in duk_get_length()
26338 duk_hstring *h = DUK_TVAL_GET_STRING(tv); in duk_get_length()
26346 duk_hbuffer *h = DUK_TVAL_GET_BUFFER(tv); in duk_get_length()
26364 duk_hobject *h = DUK_TVAL_GET_OBJECT(tv); in duk_get_length()
26373 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv) || DUK_TVAL_IS_UNUSED(tv)); in duk_get_length()
26391 duk_tval *tv; in duk__known_heaphdr() local
26396 tv = thr->valstack_top + idx; in duk__known_heaphdr()
26398 tv = thr->valstack_bottom + idx; in duk__known_heaphdr()
26400 DUK_ASSERT(tv >= thr->valstack_bottom); in duk__known_heaphdr()
26401 DUK_ASSERT(tv < thr->valstack_top); in duk__known_heaphdr()
26402 h = DUK_TVAL_GET_HEAPHDR(tv); in duk__known_heaphdr()
26473 duk_tval *tv; in duk_to_undefined() local
26477 tv = duk_require_tval(thr, idx); in duk_to_undefined()
26478 DUK_ASSERT(tv != NULL); in duk_to_undefined()
26479 DUK_TVAL_SET_UNDEFINED_UPDREF(thr, tv); /* side effects */ in duk_to_undefined()
26483 duk_tval *tv; in duk_to_null() local
26487 tv = duk_require_tval(thr, idx); in duk_to_null()
26488 DUK_ASSERT(tv != NULL); in duk_to_null()
26489 DUK_TVAL_SET_NULL_UPDREF(thr, tv); /* side effects */ in duk_to_null()
26592 duk_tval *tv; in duk_to_boolean() local
26598 tv = DUK_GET_TVAL_POSIDX(thr, idx); in duk_to_boolean()
26599 DUK_ASSERT(tv != NULL); in duk_to_boolean()
26601 val = duk_js_toboolean(tv); in duk_to_boolean()
26605 DUK_ASSERT(tv != NULL); in duk_to_boolean()
26606 DUK_TVAL_SET_BOOLEAN_UPDREF(thr, tv, val); /* side effects */ in duk_to_boolean()
26611 duk_tval *tv; in duk_to_boolean_top_pop() local
26616 tv = duk_require_tval(thr, -1); in duk_to_boolean_top_pop()
26617 DUK_ASSERT(tv != NULL); in duk_to_boolean_top_pop()
26619 val = duk_js_toboolean(tv); in duk_to_boolean_top_pop()
26627 duk_tval *tv; in duk_to_number() local
26636 tv = DUK_GET_TVAL_POSIDX(thr, idx); in duk_to_number()
26637 DUK_ASSERT(tv != NULL); in duk_to_number()
26638 d = duk_js_tonumber(thr, tv); /* XXX: fastint coercion? now result will always be a non-fastint */ in duk_to_number()
26641 tv = DUK_GET_TVAL_POSIDX(thr, idx); in duk_to_number()
26642 DUK_TVAL_SET_NUMBER_UPDREF(thr, tv, d); /* side effects */ in duk_to_number()
26655 DUK_INTERNAL duk_double_t duk_to_number_tval(duk_hthread *thr, duk_tval *tv) { in duk_to_number_tval() argument
26661 duk_push_tval(thr, tv); in duk_to_number_tval()
26673 DUK_TVAL_SET_TVAL(tv_dst, tv); in duk_to_number_tval()
26690 typedef duk_double_t (*duk__toint_coercer)(duk_hthread *thr, duk_tval *tv);
26693 duk_tval *tv; in duk__to_int_uint_helper() local
26698 tv = duk_require_tval(thr, idx); in duk__to_int_uint_helper()
26699 DUK_ASSERT(tv != NULL); in duk__to_int_uint_helper()
26705 if (DUK_TVAL_IS_FASTINT(tv)) { in duk__to_int_uint_helper()
26707 return (duk_double_t) DUK_TVAL_GET_FASTINT(tv); in duk__to_int_uint_helper()
26710 d = coerce_func(thr, tv); in duk__to_int_uint_helper()
26715 tv = duk_require_tval(thr, idx); in duk__to_int_uint_helper()
26716 DUK_TVAL_SET_NUMBER_UPDREF(thr, tv, d); /* side effects */ in duk__to_int_uint_helper()
26739 duk_tval *tv; in duk_to_int32() local
26744 tv = duk_require_tval(thr, idx); in duk_to_int32()
26745 DUK_ASSERT(tv != NULL); in duk_to_int32()
26746 ret = duk_js_toint32(thr, tv); in duk_to_int32()
26749 tv = duk_require_tval(thr, idx); in duk_to_int32()
26750 DUK_TVAL_SET_I32_UPDREF(thr, tv, ret); /* side effects */ in duk_to_int32()
26755 duk_tval *tv; in duk_to_uint32() local
26760 tv = duk_require_tval(thr, idx); in duk_to_uint32()
26761 DUK_ASSERT(tv != NULL); in duk_to_uint32()
26762 ret = duk_js_touint32(thr, tv); in duk_to_uint32()
26765 tv = duk_require_tval(thr, idx); in duk_to_uint32()
26766 DUK_TVAL_SET_U32_UPDREF(thr, tv, ret); /* side effects */ in duk_to_uint32()
26771 duk_tval *tv; in duk_to_uint16() local
26776 tv = duk_require_tval(thr, idx); in duk_to_uint16()
26777 DUK_ASSERT(tv != NULL); in duk_to_uint16()
26778 ret = duk_js_touint16(thr, tv); in duk_to_uint16()
26781 tv = duk_require_tval(thr, idx); in duk_to_uint16()
26782 DUK_TVAL_SET_U32_UPDREF(thr, tv, ret); /* side effects */ in duk_to_uint16()
26959 DUK_INTERNAL void duk_push_class_string_tval(duk_hthread *thr, duk_tval *tv, duk_bool_t avoid_side_… in duk_push_class_string_tval() argument
26966 DUK_ASSERT(tv != NULL); in duk_push_class_string_tval()
26969 DUK_TVAL_SET_TVAL(&tv_tmp, tv); in duk_push_class_string_tval()
26970 tv = &tv_tmp; in duk_push_class_string_tval()
26991 switch (DUK_TVAL_GET_TAG(tv)) { in duk_push_class_string_tval()
27003 duk_push_tval(thr, tv); in duk_push_class_string_tval()
27004 tv = NULL; /* Invalidated by ToObject(). */ in duk_push_class_string_tval()
27043 duk_tval *tv; in duk_to_int_clamped_raw() local
27051 tv = duk_require_tval(thr, idx); in duk_to_int_clamped_raw()
27052 DUK_ASSERT(tv != NULL); in duk_to_int_clamped_raw()
27053 d = duk_js_tointeger(thr, tv); /* E5 Section 9.4, ToInteger() */ in duk_to_int_clamped_raw()
27073 tv = duk_get_tval(thr, idx); in duk_to_int_clamped_raw()
27074 DUK_ASSERT(tv != NULL); /* not popped by side effect */ in duk_to_int_clamped_raw()
27075 DUK_TVAL_SET_TVAL(&tv_tmp, tv); in duk_to_int_clamped_raw()
27078 DUK_TVAL_SET_I32(tv, res); in duk_to_int_clamped_raw()
27082 DUK_TVAL_SET_FASTINT(tv, res); in duk_to_int_clamped_raw()
27084 DUK_TVAL_SET_NUMBER(tv, d); in duk_to_int_clamped_raw()
27088 DUK_TVAL_SET_NUMBER(tv, d); /* no need to incref */ in duk_to_int_clamped_raw()
27119 duk_tval *tv; in duk_to_string() local
27124 tv = DUK_GET_TVAL_POSIDX(thr, idx); in duk_to_string()
27125 DUK_ASSERT(tv != NULL); in duk_to_string()
27127 switch (DUK_TVAL_GET_TAG(tv)) { in duk_to_string()
27137 if (DUK_TVAL_GET_BOOLEAN(tv)) { in duk_to_string()
27152 h = DUK_TVAL_GET_STRING(tv); in duk_to_string()
27179 void *ptr = DUK_TVAL_GET_POINTER(tv); in duk_to_string()
27193 duk_push_lightfunc_tostring(thr, tv); in duk_to_string()
27201 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv)); in duk_to_string()
27202 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv)); in duk_to_string()
27203 duk_push_tval(thr, tv); in duk_to_string()
27327 duk_tval *tv; in duk_to_pointer() local
27333 tv = DUK_GET_TVAL_POSIDX(thr, idx); in duk_to_pointer()
27334 DUK_ASSERT(tv != NULL); in duk_to_pointer()
27336 switch (DUK_TVAL_GET_TAG(tv)) { in duk_to_pointer()
27343 res = DUK_TVAL_GET_POINTER(tv); in duk_to_pointer()
27351 res = (void *) DUK_TVAL_GET_HEAPHDR(tv); in duk_to_pointer()
27365 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv)); in duk_to_pointer()
27366 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv)); in duk_to_pointer()
27415 duk_tval *tv; in duk_to_object() local
27422 tv = DUK_GET_TVAL_POSIDX(thr, idx); in duk_to_object()
27423 DUK_ASSERT(tv != NULL); in duk_to_object()
27425 switch (DUK_TVAL_GET_TAG(tv)) { in duk_to_object()
27444 h = DUK_TVAL_GET_STRING(tv); in duk_to_object()
27475 h_buf = DUK_TVAL_GET_BUFFER(tv); in duk_to_object()
27501 DUK_TVAL_GET_LIGHTFUNC(tv, func, lf_flags); in duk_to_object()
27509 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv)); in duk_to_object()
27510 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv)); in duk_to_object()
27554 duk_tval *tv; in duk__tag_check() local
27556 tv = duk_get_tval_or_unused(thr, idx); in duk__tag_check()
27557 DUK_ASSERT(tv != NULL); in duk__tag_check()
27558 return (DUK_TVAL_GET_TAG(tv) == tag); in duk__tag_check()
27573 DUK_INTERNAL duk_int_t duk_get_type_tval(duk_tval *tv) { in duk_get_type_tval() argument
27574 DUK_ASSERT(tv != NULL); in duk_get_type_tval()
27577 switch (DUK_TVAL_GET_TAG(tv)) { in duk_get_type_tval()
27601 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv)); in duk_get_type_tval()
27602 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv)); in duk_get_type_tval()
27606 DUK_ASSERT(DUK_TVAL_IS_VALID_TAG(tv)); in duk_get_type_tval()
27608 return (duk_int_t) duk__type_from_tag[DUK_TVAL_GET_TAG(tv) - DUK_TAG_MIN]; in duk_get_type_tval()
27613 duk_tval *tv; in duk_get_type() local
27617 tv = duk_get_tval_or_unused(thr, idx); in duk_get_type()
27618 DUK_ASSERT(tv != NULL); in duk_get_type()
27620 return duk_get_type_tval(tv); in duk_get_type()
27651 duk_tval *tv; in duk_get_class_number() local
27656 tv = duk_get_tval_or_unused(thr, idx); in duk_get_class_number()
27657 DUK_ASSERT(tv != NULL); in duk_get_class_number()
27659 switch (DUK_TVAL_GET_TAG(tv)) { in duk_get_class_number()
27661 obj = DUK_TVAL_GET_OBJECT(tv); in duk_get_class_number()
27682 DUK_INTERNAL duk_uint_t duk_get_type_mask_tval(duk_tval *tv) { in duk_get_type_mask_tval() argument
27683 DUK_ASSERT(tv != NULL); in duk_get_type_mask_tval()
27686 switch (DUK_TVAL_GET_TAG(tv)) { in duk_get_type_mask_tval()
27710 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv)); in duk_get_type_mask_tval()
27711 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv)); in duk_get_type_mask_tval()
27715 DUK_ASSERT(DUK_TVAL_IS_VALID_TAG(tv)); in duk_get_type_mask_tval()
27717 return duk__type_mask_from_tag[DUK_TVAL_GET_TAG(tv) - DUK_TAG_MIN]; in duk_get_type_mask_tval()
27722 duk_tval *tv; in duk_get_type_mask() local
27726 tv = duk_get_tval_or_unused(thr, idx); in duk_get_type_mask()
27727 DUK_ASSERT(tv != NULL); in duk_get_type_mask()
27729 return duk_get_type_mask_tval(tv); in duk_get_type_mask()
27761 duk_tval *tv; in duk_is_number() local
27772 tv = duk_get_tval_or_unused(thr, idx); in duk_is_number()
27773 DUK_ASSERT(tv != NULL); in duk_is_number()
27774 return DUK_TVAL_IS_NUMBER(tv); in duk_is_number()
27784 duk_tval *tv; in duk_is_nan() local
27788 tv = duk_get_tval_or_unused(thr, idx); in duk_is_nan()
27789 DUK_ASSERT(tv != NULL); in duk_is_nan()
27792 if (!DUK_TVAL_IS_NUMBER(tv)) { in duk_is_nan()
27795 return (duk_bool_t) DUK_ISNAN(DUK_TVAL_GET_NUMBER(tv)); in duk_is_nan()
27820 duk_tval *tv; in duk_is_buffer_data() local
27824 tv = duk_get_tval_or_unused(thr, idx); in duk_is_buffer_data()
27825 DUK_ASSERT(tv != NULL); in duk_is_buffer_data()
27826 if (DUK_TVAL_IS_BUFFER(tv)) { in duk_is_buffer_data()
27828 } else if (DUK_TVAL_IS_OBJECT(tv)) { in duk_is_buffer_data()
27829 duk_hobject *h = DUK_TVAL_GET_OBJECT(tv); in duk_is_buffer_data()
27872 duk_tval *tv; in duk_is_array() local
27876 tv = duk_get_tval(thr, idx); in duk_is_array()
27877 if (tv) { in duk_is_array()
27878 return duk_js_isarray(tv); in duk_is_array()
27884 duk_tval *tv; in duk_is_function() local
27888 tv = duk_get_tval_or_unused(thr, idx); in duk_is_function()
27889 if (DUK_TVAL_IS_OBJECT(tv)) { in duk_is_function()
27891 h = DUK_TVAL_GET_OBJECT(tv); in duk_is_function()
27895 if (DUK_TVAL_IS_LIGHTFUNC(tv)) { in duk_is_function()
27901 DUK_INTERNAL duk_bool_t duk_is_callable_tval(duk_hthread *thr, duk_tval *tv) { in duk_is_callable_tval() argument
27906 if (DUK_TVAL_IS_OBJECT(tv)) { in duk_is_callable_tval()
27908 h = DUK_TVAL_GET_OBJECT(tv); in duk_is_callable_tval()
27912 if (DUK_TVAL_IS_LIGHTFUNC(tv)) { in duk_is_callable_tval()
27919 duk_tval *tv; in duk_is_constructable() local
27923 tv = duk_get_tval_or_unused(thr, idx); in duk_is_constructable()
27924 if (DUK_TVAL_IS_OBJECT(tv)) { in duk_is_constructable()
27926 h = DUK_TVAL_GET_OBJECT(tv); in duk_is_constructable()
27930 if (DUK_TVAL_IS_LIGHTFUNC(tv)) { in duk_is_constructable()
27970 duk_tval *tv; in duk_is_fixed_buffer() local
27974 tv = duk_get_tval_or_unused(thr, idx); in duk_is_fixed_buffer()
27975 DUK_ASSERT(tv != NULL); in duk_is_fixed_buffer()
27976 if (DUK_TVAL_IS_BUFFER(tv)) { in duk_is_fixed_buffer()
27977 duk_hbuffer *h = DUK_TVAL_GET_BUFFER(tv); in duk_is_fixed_buffer()
27985 duk_tval *tv; in duk_is_dynamic_buffer() local
27989 tv = duk_get_tval_or_unused(thr, idx); in duk_is_dynamic_buffer()
27990 DUK_ASSERT(tv != NULL); in duk_is_dynamic_buffer()
27991 if (DUK_TVAL_IS_BUFFER(tv)) { in duk_is_dynamic_buffer()
27992 duk_hbuffer *h = DUK_TVAL_GET_BUFFER(tv); in duk_is_dynamic_buffer()
28000 duk_tval *tv; in duk_is_external_buffer() local
28004 tv = duk_get_tval_or_unused(thr, idx); in duk_is_external_buffer()
28005 DUK_ASSERT(tv != NULL); in duk_is_external_buffer()
28006 if (DUK_TVAL_IS_BUFFER(tv)) { in duk_is_external_buffer()
28007 duk_hbuffer *h = DUK_TVAL_GET_BUFFER(tv); in duk_is_external_buffer()
28062 DUK_INTERNAL void duk_push_tval(duk_hthread *thr, duk_tval *tv) { in duk_push_tval() argument
28066 DUK_ASSERT(tv != NULL); in duk_push_tval()
28070 DUK_TVAL_SET_TVAL(tv_slot, tv); in duk_push_tval()
28071 DUK_TVAL_INCREF(thr, tv); /* no side effects */ in duk_push_tval()
28324 duk_tval *tv; in duk__push_this_helper() local
28328 tv = thr->valstack_bottom - 1; in duk__push_this_helper()
28330 (DUK_TVAL_IS_UNDEFINED(tv) || DUK_TVAL_IS_NULL(tv))) { in duk__push_this_helper()
28335 DUK_TVAL_SET_TVAL(tv_slot, tv); in duk__push_this_helper()
28336 DUK_TVAL_INCREF(thr, tv); in duk__push_this_helper()
29508 duk_tval *tv; in duk_push_heapptr() local
29526 tv = thr->valstack_top++; in duk_push_heapptr()
29529 DUK_ASSERT(DUK_TVAL_IS_UNDEFINED(tv)); in duk_push_heapptr()
29581 DUK_TVAL_SET_STRING(tv, (duk_hstring *) ptr); in duk_push_heapptr()
29584 DUK_TVAL_SET_OBJECT(tv, (duk_hobject *) ptr); in duk_push_heapptr()
29588 DUK_TVAL_SET_BUFFER(tv, (duk_hbuffer *) ptr); in duk_push_heapptr()
29610 duk_tval tv; in duk_push_hstring() local
29615 DUK_TVAL_SET_STRING(&tv, h); in duk_push_hstring()
29616 duk_push_tval(thr, &tv); in duk_push_hstring()
29631 duk_tval tv; in duk_push_hobject() local
29636 DUK_TVAL_SET_OBJECT(&tv, h); in duk_push_hobject()
29637 duk_push_tval(thr, &tv); in duk_push_hobject()
29641 duk_tval tv; in duk_push_hbuffer() local
29646 DUK_TVAL_SET_BUFFER(&tv, h); in duk_push_hbuffer()
29647 duk_push_tval(thr, &tv); in duk_push_hbuffer()
29663 duk_tval *tv; in duk__pop_n_unsafe_raw() local
29673 tv = thr->valstack_top; in duk__pop_n_unsafe_raw()
29674 tv_end = tv - count; in duk__pop_n_unsafe_raw()
29675 while (tv != tv_end) { in duk__pop_n_unsafe_raw()
29676 tv--; in duk__pop_n_unsafe_raw()
29677 DUK_ASSERT(tv >= thr->valstack_bottom); in duk__pop_n_unsafe_raw()
29678 DUK_TVAL_SET_UNDEFINED_UPDREF_NORZ(thr, tv); in duk__pop_n_unsafe_raw()
29680 thr->valstack_top = tv; in duk__pop_n_unsafe_raw()
29683 tv = thr->valstack_top; in duk__pop_n_unsafe_raw()
29686 tv--; in duk__pop_n_unsafe_raw()
29687 DUK_ASSERT(tv >= thr->valstack_bottom); in duk__pop_n_unsafe_raw()
29688 DUK_TVAL_SET_UNDEFINED(tv); in duk__pop_n_unsafe_raw()
29690 thr->valstack_top = tv; in duk__pop_n_unsafe_raw()
29724 duk_tval *tv; in duk_pop_n_nodecref_unsafe() local
29731 tv = thr->valstack_top; in duk_pop_n_nodecref_unsafe()
29734 tv--; in duk_pop_n_nodecref_unsafe()
29735 DUK_ASSERT(tv >= thr->valstack_bottom); in duk_pop_n_nodecref_unsafe()
29736 DUK_TVAL_SET_UNDEFINED(tv); in duk_pop_n_nodecref_unsafe()
29738 thr->valstack_top = tv; in duk_pop_n_nodecref_unsafe()
29767 duk_tval *tv; in duk__pop_unsafe_raw() local
29774 tv = --thr->valstack_top; in duk__pop_unsafe_raw()
29775 DUK_ASSERT(tv >= thr->valstack_bottom); in duk__pop_unsafe_raw()
29777 DUK_TVAL_SET_UNDEFINED_UPDREF(thr, tv); /* side effects */ in duk__pop_unsafe_raw()
29779 DUK_TVAL_SET_UNDEFINED(tv); in duk__pop_unsafe_raw()
29800 duk_tval *tv; in duk_pop_nodecref_unsafe() local
29807 tv = --thr->valstack_top; in duk_pop_nodecref_unsafe()
29808 DUK_ASSERT(tv >= thr->valstack_bottom); in duk_pop_nodecref_unsafe()
29809 DUK_TVAL_SET_UNDEFINED(tv); in duk_pop_nodecref_unsafe()
29849 duk_tval *tv; in duk__pop_2_unsafe_raw() local
29856 tv = --thr->valstack_top; in duk__pop_2_unsafe_raw()
29857 DUK_ASSERT(tv >= thr->valstack_bottom); in duk__pop_2_unsafe_raw()
29859 DUK_TVAL_SET_UNDEFINED_UPDREF(thr, tv); /* side effects */ in duk__pop_2_unsafe_raw()
29861 DUK_TVAL_SET_UNDEFINED(tv); in duk__pop_2_unsafe_raw()
29863 tv = --thr->valstack_top; in duk__pop_2_unsafe_raw()
29864 DUK_ASSERT(tv >= thr->valstack_bottom); in duk__pop_2_unsafe_raw()
29866 DUK_TVAL_SET_UNDEFINED_UPDREF(thr, tv); /* side effects */ in duk__pop_2_unsafe_raw()
29868 DUK_TVAL_SET_UNDEFINED(tv); in duk__pop_2_unsafe_raw()
29979 duk_tval *tv; in duk_unpack_array_like() local
29983 tv = duk_require_tval(thr, idx); in duk_unpack_array_like()
29984 if (DUK_LIKELY(DUK_TVAL_IS_OBJECT(tv))) { in duk_unpack_array_like()
29989 h = DUK_TVAL_GET_OBJECT(tv); in duk_unpack_array_like()
30070 } else if (DUK_TVAL_IS_UNDEFINED(tv) || DUK_TVAL_IS_NULL(tv)) { in duk_unpack_array_like()
30348 DUK_INTERNAL void duk_push_lightfunc_name(duk_hthread *thr, duk_tval *tv) { in duk_push_lightfunc_name() argument
30353 DUK_ASSERT(DUK_TVAL_IS_LIGHTFUNC(tv)); in duk_push_lightfunc_name()
30355 DUK_TVAL_GET_LIGHTFUNC(tv, func, lf_flags); in duk_push_lightfunc_name()
30359 DUK_INTERNAL void duk_push_lightfunc_tostring(duk_hthread *thr, duk_tval *tv) { in duk_push_lightfunc_tostring() argument
30364 DUK_ASSERT(DUK_TVAL_IS_LIGHTFUNC(tv)); in duk_push_lightfunc_tostring()
30366 DUK_TVAL_GET_LIGHTFUNC(tv, func, lf_flags); /* read before 'tv' potentially invalidated */ in duk_push_lightfunc_tostring()
30476 DUK_LOCAL const char *duk__push_string_tval_readable(duk_hthread *thr, duk_tval *tv, duk_bool_t err… in duk__push_string_tval_readable() argument
30480 if (tv == NULL) { in duk__push_string_tval_readable()
30483 switch (DUK_TVAL_GET_TAG(tv)) { in duk__push_string_tval_readable()
30485 duk_hstring *h = DUK_TVAL_GET_STRING(tv); in duk__push_string_tval_readable()
30502 duk_hobject *h = DUK_TVAL_GET_OBJECT(tv); in duk__push_string_tval_readable()
30524 duk_push_class_string_tval(thr, tv, 1 /*avoid_side_effects*/); in duk__push_string_tval_readable()
30533 duk_hbuffer *h = DUK_TVAL_GET_BUFFER(tv); in duk__push_string_tval_readable()
30542 duk_push_tval(thr, tv); in duk__push_string_tval_readable()
30548 duk_push_tval(thr, tv); in duk__push_string_tval_readable()
30556 DUK_INTERNAL const char *duk_push_string_tval_readable(duk_hthread *thr, duk_tval *tv) { in duk_push_string_tval_readable() argument
30558 return duk__push_string_tval_readable(thr, tv, 0 /*error_aware*/); in duk_push_string_tval_readable()
30566 DUK_INTERNAL const char *duk_push_string_tval_readable_error(duk_hthread *thr, duk_tval *tv) { in duk_push_string_tval_readable_error() argument
30568 return duk__push_string_tval_readable(thr, tv, 1 /*error_aware*/); in duk_push_string_tval_readable_error()
30626 duk_tval *tv; in duk_copy_tvals_incref() local
30634 tv = tv_dst; in duk_copy_tvals_incref()
30636 DUK_TVAL_INCREF(thr, tv); in duk_copy_tvals_incref()
30637 tv++; in duk_copy_tvals_incref()
31229 duk_tval *tv; in duk__arraypart_fastpath_this() local
31234 tv = DUK_GET_THIS_TVAL_PTR(thr); in duk__arraypart_fastpath_this()
31239 if (!DUK_TVAL_IS_OBJECT(tv)) { in duk__arraypart_fastpath_this()
31243 h = DUK_TVAL_GET_OBJECT(tv); in duk__arraypart_fastpath_this()
32804 duk_tval *tv; in duk_bi_boolean_prototype_tostring_shared() local
32814 tv = duk_get_tval(thr, -1); in duk_bi_boolean_prototype_tostring_shared()
32815 DUK_ASSERT(tv != NULL); in duk_bi_boolean_prototype_tostring_shared()
32817 if (DUK_TVAL_IS_BOOLEAN(tv)) { in duk_bi_boolean_prototype_tostring_shared()
32819 } else if (DUK_TVAL_IS_OBJECT(tv)) { in duk_bi_boolean_prototype_tostring_shared()
32820 h = DUK_TVAL_GET_OBJECT(tv); in duk_bi_boolean_prototype_tostring_shared()
33002 duk_tval *tv; in duk__getrequire_bufobj_this() local
33007 tv = duk_get_borrowed_this_tval(thr); in duk__getrequire_bufobj_this()
33008 DUK_ASSERT(tv != NULL); in duk__getrequire_bufobj_this()
33010 if (DUK_TVAL_IS_OBJECT(tv)) { in duk__getrequire_bufobj_this()
33011 h_this = (duk_hbufobj *) DUK_TVAL_GET_OBJECT(tv); in duk__getrequire_bufobj_this()
33017 } else if (DUK_TVAL_IS_BUFFER(tv)) { in duk__getrequire_bufobj_this()
33032 return (duk_heaphdr *) DUK_TVAL_GET_BUFFER(tv); in duk__getrequire_bufobj_this()
33057 duk_tval *tv; in duk__require_bufobj_value() local
33063 tv = duk_require_tval(thr, idx); in duk__require_bufobj_value()
33064 DUK_ASSERT(tv != NULL); in duk__require_bufobj_value()
33065 if (DUK_TVAL_IS_OBJECT(tv)) { in duk__require_bufobj_value()
33066 h_obj = (duk_hbufobj *) DUK_TVAL_GET_OBJECT(tv); in duk__require_bufobj_value()
33072 } else if (DUK_TVAL_IS_BUFFER(tv)) { in duk__require_bufobj_value()
33549 duk_tval *tv; in duk_bi_typedarray_constructor() local
33604 tv = duk_get_tval(thr, 0); in duk_bi_typedarray_constructor()
33605 DUK_ASSERT(tv != NULL); /* arg count */ in duk_bi_typedarray_constructor()
33606 if (DUK_TVAL_IS_OBJECT(tv)) { in duk_bi_typedarray_constructor()
33607 h_obj = DUK_TVAL_GET_OBJECT(tv); in duk_bi_typedarray_constructor()
34108 duk_tval *tv; in duk_bi_nodejs_buffer_tojson() local
34127tv = duk_push_harray_with_size_outptr(thr, (duk_uint32_t) h_this->length); /* XXX: needs revision… in duk_bi_nodejs_buffer_tojson()
34133 DUK_TVAL_SET_U32(tv + i, (duk_uint32_t) buf[i]); /* no need for decref or incref */ in duk_bi_nodejs_buffer_tojson()
34776 duk_tval *tv; in duk_bi_buffer_slice_shared() local
34782 tv = duk_get_borrowed_this_tval(thr); in duk_bi_buffer_slice_shared()
34783 DUK_ASSERT(tv != NULL); in duk_bi_buffer_slice_shared()
34785 if (DUK_TVAL_IS_BUFFER(tv)) { in duk_bi_buffer_slice_shared()
34787 h_val = DUK_TVAL_GET_BUFFER(tv); in duk_bi_buffer_slice_shared()
34807 tv = NULL; /* No longer valid nor needed. */ in duk_bi_buffer_slice_shared()
39299 struct timeval tv; in duk_bi_date_get_now_gettimeofday() local
39302 if (gettimeofday(&tv, NULL) != 0) { in duk_bi_date_get_now_gettimeofday()
39308 d = ((duk_double_t) tv.tv_sec) * 1000.0 + in duk_bi_date_get_now_gettimeofday()
39309 ((duk_double_t) tv.tv_usec) / 1000.0; in duk_bi_date_get_now_gettimeofday()
40988 duk_tval *tv; in duk_bi_function_prototype_to_string() local
41011 tv = DUK_GET_TVAL_NEGIDX(thr, -1); in duk_bi_function_prototype_to_string()
41012 DUK_ASSERT(tv != NULL); in duk_bi_function_prototype_to_string()
41014 if (DUK_TVAL_IS_OBJECT(tv)) { in duk_bi_function_prototype_to_string()
41015 duk_hobject *obj = DUK_TVAL_GET_OBJECT(tv); in duk_bi_function_prototype_to_string()
41042 } else if (DUK_TVAL_IS_LIGHTFUNC(tv)) { in duk_bi_function_prototype_to_string()
41043 duk_push_lightfunc_tostring(thr, tv); in duk_bi_function_prototype_to_string()
41273 duk_tval *tv; in duk_bi_native_function_length() local
41277 tv = duk_get_borrowed_this_tval(thr); in duk_bi_native_function_length()
41278 DUK_ASSERT(tv != NULL); in duk_bi_native_function_length()
41280 if (DUK_TVAL_IS_OBJECT(tv)) { in duk_bi_native_function_length()
41281 h = (duk_hnatfunc *) DUK_TVAL_GET_OBJECT(tv); in duk_bi_native_function_length()
41288 } else if (DUK_TVAL_IS_LIGHTFUNC(tv)) { in duk_bi_native_function_length()
41292 lf_flags = DUK_TVAL_GET_LIGHTFUNC_FLAGS(tv); in duk_bi_native_function_length()
41306 duk_tval *tv; in duk_bi_native_function_name() local
41309 tv = duk_get_borrowed_this_tval(thr); in duk_bi_native_function_name()
41310 DUK_ASSERT(tv != NULL); in duk_bi_native_function_name()
41312 if (DUK_TVAL_IS_OBJECT(tv)) { in duk_bi_native_function_name()
41313 h = (duk_hnatfunc *) DUK_TVAL_GET_OBJECT(tv); in duk_bi_native_function_name()
41322 } else if (DUK_TVAL_IS_LIGHTFUNC(tv)) { in duk_bi_native_function_name()
41323 duk_push_lightfunc_name(thr, tv); in duk_bi_native_function_name()
41911 duk_tval *tv; in duk_bi_global_object_eval() local
41914tv = (duk_tval *) (void *) ((duk_uint8_t *) thr->valstack + act_caller->bottom_byteoff - sizeof(du… in duk_bi_global_object_eval()
41915 DUK_ASSERT(tv >= thr->valstack); in duk_bi_global_object_eval()
41916 duk_push_tval(thr, tv); in duk_bi_global_object_eval()
42143 DUK_LOCAL_DECL duk_bool_t duk__enc_allow_into_proplist(duk_tval *tv);
42146 DUK_LOCAL_DECL void duk__enc_fastint_tval(duk_json_enc_ctx *js_ctx, duk_tval *tv);
43415 duk_tval *tv; local
43428 tv = DUK_GET_TVAL_NEGIDX(thr, -1);
43429 DUK_ASSERT(DUK_TVAL_IS_DOUBLE(tv));
43430 d = DUK_TVAL_GET_DOUBLE(tv);
43477 DUK_LOCAL void duk__enc_fastint_tval(duk_json_enc_ctx *js_ctx, duk_tval *tv) { argument
43487 DUK_ASSERT(DUK_TVAL_IS_FASTINT(tv));
43488 v = DUK_TVAL_GET_FASTINT(tv);
44058 duk_tval *tv; local
44118 tv = DUK_GET_TVAL_NEGIDX(thr, -1);
44119 if (DUK_TVAL_IS_OBJECT(tv)) {
44122 h = DUK_TVAL_GET_OBJECT(tv);
44207 tv = DUK_GET_TVAL_NEGIDX(thr, -1);
44209 switch (DUK_TVAL_GET_TAG(tv)) {
44222 DUK__EMIT_STRIDX(js_ctx, DUK_TVAL_GET_BOOLEAN(tv) ?
44229 duk__enc_pointer(js_ctx, DUK_TVAL_GET_POINTER(tv));
44234 duk_hstring *h = DUK_TVAL_GET_STRING(tv);
44243 duk_hobject *h = DUK_TVAL_GET_OBJECT(tv);
44267 duk__enc_buffer_jx_jc(js_ctx, DUK_TVAL_GET_BUFFER(tv));
44295 duk__enc_fastint_tval(js_ctx, tv);
44300 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv));
44301 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv));
44322 DUK_LOCAL duk_bool_t duk__enc_allow_into_proplist(duk_tval *tv) { argument
44328 DUK_ASSERT(tv != NULL);
44329 if (DUK_TVAL_IS_STRING(tv)) {
44331 h = DUK_TVAL_GET_STRING(tv);
44337 } else if (DUK_TVAL_IS_NUMBER(tv)) {
44339 } else if (DUK_TVAL_IS_OBJECT(tv)) {
44341 h = DUK_TVAL_GET_OBJECT(tv);
44362 DUK_LOCAL duk_bool_t duk__json_stringify_fast_value(duk_json_enc_ctx *js_ctx, duk_tval *tv) { argument
44365 DUK_DDD(DUK_DDDPRINT("stringify fast: %!T", tv));
44374 DUK_ASSERT(tv != NULL);
44376 switch (DUK_TVAL_GET_TAG(tv)) {
44394 DUK__EMIT_STRIDX(js_ctx, DUK_TVAL_GET_BOOLEAN(tv) ?
44400 h = DUK_TVAL_GET_STRING(tv);
44438 obj = DUK_TVAL_GET_OBJECT(tv);
44713 tv = tv_internal;
44763 duk__enc_buffer_jx_jc(js_ctx, DUK_TVAL_GET_BUFFER(tv));
44771 duk__enc_buffer_json_fastpath(js_ctx, DUK_TVAL_GET_BUFFER(tv));
44777 duk__enc_pointer(js_ctx, DUK_TVAL_GET_POINTER(tv));
44799 duk__enc_fastint_tval(js_ctx, tv);
44807 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv));
44808 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv));
44811 duk_push_tval(js_ctx->thr, tv);
44823 DUK_ASSERT(DUK_TVAL_IS_DOUBLE(tv));
44824 d = DUK_TVAL_GET_DOUBLE(tv);
44844 duk_tval *tv; local
44852 tv = DUK_GET_TVAL_NEGIDX(thr, -1);
44853 if (duk__json_stringify_fast_value(js_ctx, tv) == 0) {
46150 duk_tval *tv; local
46152 tv = DUK_HTHREAD_THIS_PTR(thr);
46153 duk_push_class_string_tval(thr, tv, 0 /*avoid_side_effects*/);
46472 duk_tval *tv; local
46486 tv = DUK_GET_TVAL_POSIDX(thr, 0);
46488 switch (DUK_TVAL_GET_TAG(tv)) {
46496 h = DUK_TVAL_GET_OBJECT(tv);
47020 duk_tval *tv; local
47024 tv = duk_require_tval(thr, -1);
47025 DUK_ASSERT(tv != NULL);
47027 if (DUK_TVAL_IS_POINTER(tv)) {
47029 } else if (DUK_TVAL_IS_OBJECT(tv)) {
47030 duk_hobject *h = DUK_TVAL_GET_OBJECT(tv);
47747 duk_tval *tv; local
47750 tv = duk_require_tval(thr, -1);
47751 DUK_ASSERT(tv != NULL);
47753 if (DUK_TVAL_IS_STRING(tv)) {
47755 } else if (DUK_TVAL_IS_OBJECT(tv)) {
47756 duk_hobject *h = DUK_TVAL_GET_OBJECT(tv);
49170 duk_tval *tv; local
49179 tv = tv_arg;
49180 if (DUK_TVAL_IS_OBJECT(tv)) {
49181 h_obj = DUK_TVAL_GET_OBJECT(tv);
49184 tv = duk_hobject_get_internal_value_tval_ptr(thr->heap, h_obj);
49185 if (tv == NULL) {
49193 if (!DUK_TVAL_IS_STRING(tv)) {
49196 h_str = DUK_TVAL_GET_STRING(tv);
49815 DUK_LOCAL_DECL void duk__print_tval(duk__dprint_state *st, duk_tval *tv);
49984 duk_tval *tv; local
50061 tv = DUK_HOBJECT_A_GET_VALUE_PTR(NULL, h, a_limit - 1);
50062 if (!DUK_TVAL_IS_UNUSED(tv)) {
50070 tv = DUK_HOBJECT_A_GET_VALUE_PTR(NULL, h, i);
50072 duk__print_tval(st, tv);
50090 tv = &DUK_HOBJECT_E_GET_VALUE(NULL, h, i).v;
50091 duk__print_tval(st, tv);
50360 DUK_LOCAL void duk__print_tval(duk__dprint_state *st, duk_tval *tv) { argument
50370 duk_fb_sprintf(fb, "(%p)", (void *) tv);
50373 if (!tv) {
50381 for (i = 0; i < (duk_size_t) sizeof(*tv); i++) {
50382 duk_fb_sprintf(fb, "%02lx", (unsigned long) ((duk_uint8_t *)tv)[i]);
50390 switch (DUK_TVAL_GET_TAG(tv)) {
50404 duk_fb_put_cstring(fb, DUK_TVAL_GET_BOOLEAN(tv) ? "true" : "false");
50409 duk__print_hstring(st, DUK_TVAL_GET_STRING(tv), 1);
50413 duk__print_hobject(st, DUK_TVAL_GET_OBJECT(tv));
50417 duk__print_hbuffer(st, DUK_TVAL_GET_BUFFER(tv));
50421 duk_fb_sprintf(fb, "pointer:%p", (void *) DUK_TVAL_GET_POINTER(tv));
50428 DUK_TVAL_GET_LIGHTFUNC(tv, func, lf_flags);
50436 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv));
50437 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv));
50438 duk_fb_sprintf(fb, "%.18g_F", (double) DUK_TVAL_GET_NUMBER(tv));
50443 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv));
50444 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv));
50445 duk_fb_sprintf(fb, "%.18g", (double) DUK_TVAL_GET_NUMBER(tv));
51655 DUK_INTERNAL void duk_debug_write_tval(duk_hthread *thr, duk_tval *tv) { argument
51664 DUK_ASSERT(tv != NULL);
51666 switch (DUK_TVAL_GET_TAG(tv)) {
51677 DUK_ASSERT(DUK_TVAL_GET_BOOLEAN(tv) == 0 ||
51678 DUK_TVAL_GET_BOOLEAN(tv) == 1);
51679 duk_debug_write_boolean(thr, DUK_TVAL_GET_BOOLEAN(tv));
51682 duk_debug_write_pointer(thr, (void *) DUK_TVAL_GET_POINTER(tv));
51685 DUK_TVAL_GET_LIGHTFUNC(tv, lf_func, lf_flags);
51694 duk_debug_write_hstring(thr, DUK_TVAL_GET_STRING(tv));
51697 duk_debug_write_hobject(thr, DUK_TVAL_GET_OBJECT(tv));
51700 duk_debug_write_hbuffer(thr, DUK_TVAL_GET_BUFFER(tv));
51714 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv));
51715 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv));
51716 du1.d = DUK_TVAL_GET_NUMBER(tv);
51746 DUK_LOCAL void duk__debug_write_tval_heapptr(duk_hthread *thr, duk_tval *tv) { argument
51747 if (DUK_TVAL_IS_HEAP_ALLOCATED(tv)) {
51748 duk_heaphdr *h = DUK_TVAL_GET_HEAPHDR(tv);
51751 duk_debug_write_tval(thr, tv);
52195 duk_tval *tv; local
52206 tv = duk_debug_read_tval(thr);
52207 if (tv == NULL) {
52212 duk_js_putvar_activation(thr, act, str, tv, 0);
52431 duk_tval *tv; local
52436 tv = duk_debug_read_tval(thr); /* push to stack */
52437 if (tv == NULL) {
52614 duk_tval *tv; local
52625 tv = duk_debug_read_tval(thr);
52626 if (tv == NULL) {
52630 if (DUK_TVAL_IS_OBJECT(tv)) {
52632 fun = (duk_hcompfunc *) DUK_TVAL_GET_OBJECT(tv);
52634 } else if (DUK_TVAL_IS_NUMBER(tv)) {
52635 level = (duk_int32_t) DUK_TVAL_GET_NUMBER(tv);
52637 DUK_D(DUK_DPRINT("invalid argument to GetBytecode: %!T", tv));
52659 tv = DUK_HCOMPFUNC_GET_CONSTS_BASE(heap, fun);
52661 duk_debug_write_tval(thr, tv);
52662 tv++;
52839 duk_tval *tv; local
52850 tv = DUK_HOBJECT_A_GET_VALUE_PTR(heap, h_obj, idx);
52851 duk_debug_write_tval(thr, tv);
52891 tv = DUK_HOBJECT_E_GET_VALUE_TVAL_PTR(heap, h_obj, idx);
52892 duk_debug_write_tval(thr, tv);
53830 duk_tval *tv; local
53884 tv = duk_push_harray_with_size_outptr(thr, (duk_uint32_t) arr_size);
53887 DUK_ASSERT(arr_size == 0 || tv != NULL);
53894 DUK_TVAL_SET_STRING(tv, s);
53896 tv++;
53899 DUK_TVAL_SET_U32(tv, u32);
53900 tv++;
53914 DUK_TVAL_SET_STRING(tv, s);
53916 tv++;
53920 DUK_TVAL_SET_DOUBLE(tv, d);
53921 tv++;
53939 DUK_TVAL_SET_TVAL(tv, tv_src);
53940 DUK_TVAL_INCREF(thr, tv);
53941 tv++;
53952 DUK_TVAL_SET_DOUBLE(tv, d);
53953 tv++;
53961 …DUK_ASSERT((duk_uint32_t) (tv - DUK_HOBJECT_A_GET_BASE(thr->heap, (duk_hobject *) a)) == a->length…
56753 DUK_LOCAL_DECL void duk__mark_tval(duk_heap *heap, duk_tval *tv);
56754 DUK_LOCAL_DECL void duk__mark_tvals(duk_heap *heap, duk_tval *tv, duk_idx_t count);
56815 duk_tval *tv, *tv_end; local
56829 tv = DUK_HCOMPFUNC_GET_CONSTS_BASE(heap, f);
56831 while (tv < tv_end) {
56832 duk__mark_tval(heap, tv);
56833 tv++;
56878 duk_tval *tv; local
56882 tv = t->valstack;
56883 while (tv < t->valstack_top) {
56884 duk__mark_tval(heap, tv);
56885 tv++;
56977 DUK_LOCAL void duk__mark_tval(duk_heap *heap, duk_tval *tv) { argument
56978 DUK_DDD(DUK_DDDPRINT("duk__mark_tval %p", (void *) tv));
56979 if (tv == NULL) {
56982 DUK_TVAL_ASSERT_VALID(tv);
56983 if (DUK_TVAL_IS_HEAP_ALLOCATED(tv)) {
56985 h = DUK_TVAL_GET_HEAPHDR(tv);
56991 DUK_LOCAL void duk__mark_tvals(duk_heap *heap, duk_tval *tv, duk_idx_t count) { argument
56992 DUK_ASSERT(count == 0 || tv != NULL);
56995 DUK_TVAL_ASSERT_VALID(tv);
56996 if (DUK_TVAL_IS_HEAP_ALLOCATED(tv)) {
56998 h = DUK_TVAL_GET_HEAPHDR(tv);
57002 tv++;
58860 DUK_LOCAL void duk__decref_tvals_norz(duk_hthread *thr, duk_tval *tv, duk_idx_t count) { argument
58861 DUK_ASSERT(count == 0 || tv != NULL);
58864 DUK_TVAL_DECREF_NORZ(thr, tv);
58865 tv++;
58949 duk_tval *tv, *tv_end; local
58955 tv = DUK_HCOMPFUNC_GET_CONSTS_BASE(heap, f);
58957 while (tv < tv_end) {
58958 DUK_TVAL_DECREF_NORZ(thr, tv);
58959 tv++;
59013 duk_tval *tv; local
59017 tv = t->valstack;
59018 while (tv < t->valstack_top) {
59019 DUK_TVAL_DECREF_NORZ(thr, tv);
59020 tv++;
59503 DUK_INTERNAL void duk_tval_incref(duk_tval *tv) { argument
59504 DUK_ASSERT(tv != NULL);
59506 if (DUK_TVAL_NEEDS_REFCOUNT_UPDATE(tv)) {
59507 duk_heaphdr *h = DUK_TVAL_GET_HEAPHDR(tv);
59516 DUK_INTERNAL void duk_tval_decref(duk_hthread *thr, duk_tval *tv) { argument
59518 DUK_ASSERT(tv != NULL);
59520 if (DUK_TVAL_NEEDS_REFCOUNT_UPDATE(tv)) {
59521 duk_heaphdr *h = DUK_TVAL_GET_HEAPHDR(tv);
59536 DUK_INTERNAL void duk_tval_decref_norz(duk_hthread *thr, duk_tval *tv) { argument
59538 DUK_ASSERT(tv != NULL);
59540 if (DUK_TVAL_NEEDS_REFCOUNT_UPDATE(tv)) {
59541 duk_heaphdr *h = DUK_TVAL_GET_HEAPHDR(tv);
61915 duk_tval *tv; local
61917 tv = DUK_HOBJECT_A_GET_VALUE_PTR(thr->heap, curr, i);
61918 if (DUK_TVAL_IS_UNUSED(tv)) {
62164 duk_tval *tv; local
62185 tv = duk_push_harray_with_size_outptr(thr, (duk_uint32_t) count);
62186 DUK_ASSERT(count == 0 || tv != NULL);
62200 DUK_TVAL_SET_STRING(tv, k);
62201 tv++;
62604 DUK_LOCAL duk_uint32_t duk__tval_number_to_arr_idx(duk_tval *tv) { argument
62608 DUK_ASSERT(tv != NULL);
62609 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv));
62614 dbl = DUK_TVAL_GET_NUMBER(tv);
62627 DUK_LOCAL duk_uint32_t duk__tval_fastint_to_arr_idx(duk_tval *tv) { argument
62630 DUK_ASSERT(tv != NULL);
62631 DUK_ASSERT(DUK_TVAL_IS_FASTINT(tv));
62633 t = DUK_TVAL_GET_FASTINT(tv);
62801 duk_tval *tv = a++; local
62802 if (!DUK_TVAL_IS_UNUSED(tv)) {
63422 duk_tval *tv; local
63423 tv = DUK_HOBJECT_A_GET_VALUE_PTR(thr->heap, obj, i);
63424 DUK_ASSERT(DUK_TVAL_IS_UNUSED(tv));
63442 duk_tval *tv = &new_a[i]; local
63443 DUK_TVAL_SET_UNUSED(tv);
63956 duk_tval *tv; local
63967 tv = DUK_HOBJECT_A_GET_VALUE_PTR(heap, obj, i);
63968 return tv;
64063 duk_tval *tv; local
64068 tv = duk_hobject_get_internal_value_tval_ptr(heap, obj);
64069 if (tv != NULL) {
64070 duk_heaphdr *h = DUK_TVAL_GET_HEAPHDR(tv);
64089 duk_tval *tv; local
64092 tv = duk_hobject_find_entry_tval_ptr_stridx(heap, obj, stridx);
64093 if (tv != NULL && DUK_TVAL_IS_OBJECT(tv)) {
64094 h = DUK_TVAL_GET_OBJECT(tv);
64333 duk_tval *tv; local
64392 tv = DUK_HOBJECT_E_GET_VALUE_TVAL_PTR(thr->heap, obj, e_idx);
64394 duk_push_tval(thr, tv);
64406 tv = DUK_HOBJECT_A_GET_VALUE_PTR(thr->heap, obj, arr_idx);
64407 if (!DUK_TVAL_IS_UNUSED(tv)) {
64410 duk_push_tval(thr, tv);
64762 duk_tval *tv; local
64813 tv = DUK_HOBJECT_A_GET_VALUE_PTR(thr->heap, obj, idx);
64814 if (!DUK_TVAL_IS_UNUSED(tv)) {
64816 return tv;
64824 duk_tval *tv; local
64880 tv = DUK_HOBJECT_A_GET_VALUE_PTR(thr->heap, obj, idx);
64881 DUK_TVAL_SET_TVAL_UPDREF(thr, tv, tv_val); /* side effects */
65664 DUK_LOCAL duk_uint32_t duk__to_new_array_length_checked(duk_hthread *thr, duk_tval *tv) { argument
65673 if (DUK_TVAL_IS_FASTINT(tv)) {
65676 fi = DUK_TVAL_GET_FASTINT(tv);
65686 if (DUK_TVAL_IS_DOUBLE(tv)) {
65687 d = DUK_TVAL_GET_NUMBER(tv);
65696 d = duk_js_tonumber(thr, tv);
65732 duk_tval *tv; local
65782 tv = DUK_HOBJECT_A_GET_VALUE_PTR(thr->heap, obj, i);
65783 DUK_TVAL_SET_UNUSED_UPDREF(thr, tv); /* side effects */
66016 duk_tval *tv; local
66560 tv = DUK_HOBJECT_E_GET_VALUE_TVAL_PTR(thr->heap, orig, desc.e_idx);
66561 DUK_DDD(DUK_DDDPRINT("previous entry value: %!iT", (duk_tval *) tv));
66562 DUK_TVAL_SET_TVAL_UPDREF(thr, tv, tv_val); /* side effects; e_idx may be invalidated */
66565 (long) desc.e_idx, (duk_tval *) tv));
66573 tv = DUK_HOBJECT_A_GET_VALUE_PTR(thr->heap, orig, desc.a_idx);
66574 DUK_DDD(DUK_DDDPRINT("previous array value: %!iT", (duk_tval *) tv));
66575 DUK_TVAL_SET_TVAL_UPDREF(thr, tv, tv_val); /* side effects; a_idx may be invalidated */
66577 (long) desc.a_idx, (duk_tval *) tv));
66670 tv = duk__obtain_arridx_slot(thr, arr_idx, orig);
66671 if (tv == NULL) {
66677 DUK_ASSERT(DUK_TVAL_IS_UNUSED(tv));
66678 DUK_TVAL_SET_TVAL(tv, tv_val);
66679 DUK_TVAL_INCREF(thr, tv);
66681 (long) arr_idx, (duk_tval *) tv));
66703 tv = DUK_HOBJECT_E_GET_VALUE_TVAL_PTR(thr->heap, orig, e_idx);
66705 DUK_TVAL_SET_TVAL(tv, tv_val);
66706 DUK_TVAL_INCREF(thr, tv);
66867 duk_tval *tv; local
66915 tv = DUK_HOBJECT_A_GET_VALUE_PTR(thr->heap, obj, desc.a_idx);
66916 DUK_TVAL_SET_UNUSED_UPDREF(thr, tv); /* side effects */
66957 tv = DUK_HOBJECT_E_GET_VALUE_TVAL_PTR(thr->heap, obj, desc.e_idx);
66958 DUK_TVAL_SET_UNDEFINED_UPDREF_NORZ(thr, tv);
67590 duk_tval *tv = duk_require_tval(thr, -1); local
67593 if (DUK_TVAL_IS_UNDEFINED(tv)) {
67612 duk_tval *tv = duk_require_tval(thr, -1); local
67615 if (DUK_TVAL_IS_UNDEFINED(tv)) {
67696 duk_tval tv; local
67949 DUK_TVAL_SET_TVAL(&tv, tv_tmp);
67951 DUK_TVAL_SET_UNDEFINED(&tv); /* default value */
67964 DUK_TVAL_SET_TVAL(tv2, &tv);
67979 DUK_TVAL_SET_TVAL(tv2, &tv);
68705 duk_tval *tv = DUK_HOBJECT_A_GET_VALUE_PTR(thr->heap, obj, i); local
68706 if (!DUK_TVAL_IS_UNUSED(tv)) {
74073 duk_tval *tv; local
74099 tv = DUK_HOBJECT_E_GET_VALUE_TVAL_PTR(thr->heap, h_varmap, i);
74100 if (!DUK_TVAL_IS_NUMBER(tv)) {
74101 DUK_ASSERT(!DUK_TVAL_IS_HEAP_ALLOCATED(tv));
74134 duk_tval *tv; local
74241 tv = duk_hobject_find_array_entry_tval_ptr(thr->heap, func->h_consts, (duk_uarridx_t) i);
74242 DUK_ASSERT(tv != NULL);
74243 DUK_TVAL_SET_TVAL(p_const, tv);
74245 DUK_TVAL_INCREF(thr, tv); /* may be a string constant */
74247 DUK_DDD(DUK_DDDPRINT("constant: %!T", (duk_tval *) tv));
74255 tv = duk_hobject_find_array_entry_tval_ptr(thr->heap, func->h_funcs, (duk_uarridx_t) (i * 3));
74256 DUK_ASSERT(tv != NULL);
74257 DUK_ASSERT(DUK_TVAL_IS_OBJECT(tv));
74258 h = DUK_TVAL_GET_OBJECT(tv);
75525 duk_tval *tv; local
75527 tv = DUK_GET_TVAL_POSIDX(thr, x->valstack_idx);
75528 DUK_ASSERT(tv != NULL);
75530 switch (DUK_TVAL_GET_TAG(tv)) {
75548 (DUK_TVAL_GET_BOOLEAN(tv) ? DUK_OP_LDTRUE : DUK_OP_LDFALSE),
75561 h = DUK_TVAL_GET_STRING(tv);
75606 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv));
75607 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv));
75608 dval = DUK_TVAL_GET_NUMBER(tv);
82045 duk_tval *tv; local
82054 tv = DUK_GET_TVAL_POSIDX(thr, (duk_idx_t) idx_src);
82057 if (DUK_TVAL_IS_FASTINT(tv)) {
82060 v1 = DUK_TVAL_GET_FASTINT(tv);
82068 tv = DUK_GET_TVAL_POSIDX(thr, (duk_idx_t) idx_dst);
82069 DUK_TVAL_SET_FASTINT_UPDREF(thr, tv, v2);
82076 tv = DUK_GET_TVAL_POSIDX(thr, (duk_idx_t) idx_dst);
82077 DUK_TVAL_SET_FASTINT_UPDREF(thr, tv, v2);
82084 if (DUK_TVAL_IS_NUMBER(tv)) {
82085 d1 = DUK_TVAL_GET_NUMBER(tv);
82087 d1 = duk_to_number_tval(thr, tv); /* side effects */
82097 tv = DUK_GET_TVAL_POSIDX(thr, (duk_idx_t) idx_dst);
82098 DUK_TVAL_SET_NUMBER_CHKFAST_UPDREF(thr, tv, du.d); /* always 'fast', i.e. inlined */
82109 tv = DUK_GET_TVAL_POSIDX(thr, (duk_idx_t) idx_dst);
82110 DUK_TVAL_SET_NUMBER_UPDREF(thr, tv, du.d);
82118 duk_tval *tv; local
82127 tv = DUK_GET_TVAL_POSIDX(thr, (duk_idx_t) idx_src);
82130 if (DUK_TVAL_IS_FASTINT(tv)) {
82131 i1 = (duk_int32_t) DUK_TVAL_GET_FASTINT_I32(tv);
82136 duk_push_tval(thr, tv);
82143 tv = DUK_GET_TVAL_POSIDX(thr, (duk_idx_t) idx_dst);
82144 DUK_TVAL_SET_I32_UPDREF(thr, tv, i2); /* side effects */
82152 duk_tval *tv; local
82165 tv = DUK_GET_TVAL_POSIDX(thr, (duk_idx_t) idx_src);
82166 res = duk_js_toboolean(tv); /* does not modify 'tv' */
82169 tv = DUK_GET_TVAL_POSIDX(thr, (duk_idx_t) idx_dst);
82171 DUK_TVAL_SET_BOOLEAN_UPDREF(thr, tv, res); /* side effects */
82681 duk_tval *tv; local
82695 tv = &thr->heap->lj.value2; /* resumee */
82696 DUK_ASSERT(DUK_TVAL_IS_OBJECT(tv));
82697 DUK_ASSERT(DUK_TVAL_GET_OBJECT(tv) != NULL);
82698 DUK_ASSERT(DUK_HOBJECT_IS_THREAD(DUK_TVAL_GET_OBJECT(tv)));
82699 resumee = (duk_hthread *) DUK_TVAL_GET_OBJECT(tv);
82756tv = (duk_tval *) (void *) ((duk_uint8_t *) resumee->valstack + act_resumee->retval_byteoff); /* …
82757 DUK_ASSERT(tv >= resumee->valstack && tv < resumee->valstack_top);
82759 DUK_TVAL_SET_TVAL_UPDREF(thr, tv, tv2); /* side effects */ /* XXX: avoid side effects */
82786 tv = &thr->heap->lj.value1;
82787 duk_push_tval(resumee, tv);
84825 duk_tval *tv; local
84826 tv = thr->valstack_top;
84827 while (tv != thr->valstack_end) {
84828 DUK_ASSERT(DUK_TVAL_IS_UNDEFINED(tv));
84829 tv++;
85064 duk_tval *tv; local
85068 tv = DUK__REGP_BC(ins);
85069 stridx = duk_js_typeof_stridx(tv);
85072 tv = DUK__REGP_A(ins);
85073 DUK_TVAL_SET_STRING_UPDREF(thr, tv, h_str);
85085 duk_tval *tv; local
85091 tv = DUK__CONSTP_BC(ins);
85092 DUK_ASSERT(DUK_TVAL_IS_STRING(tv));
85093 name = DUK_TVAL_GET_STRING(tv);
85094 tv = NULL; /* lookup has side effects */
85098 tv = DUK_GET_TVAL_NEGIDX(thr, -2);
85099 stridx = duk_js_typeof_stridx(tv);
85100 tv = NULL; /* no longer needed */
85112 tv = DUK__REGP_A(ins);
85113 DUK_TVAL_SET_STRING_UPDREF(thr, tv, h_str);
86094 duk_tval *tv; local
86097 tv = DUK__REGP_BC(ins);
86098 DUK_TVAL_SET_TVAL(thr->valstack_top, tv);
86099 DUK_TVAL_INCREF(thr, tv);
86105 duk_tval *tv; local
86108 tv = DUK__CONSTP_BC(ins);
86109 DUK_TVAL_SET_TVAL(thr->valstack_top, tv);
86110 DUK_TVAL_INCREF(thr, tv);
86115 duk_tval *tv; local
86118 tv = DUK__CONSTP_BC(ins);
86119 DUK_TVAL_SET_TVAL(thr->valstack_top, tv);
86122 DUK_ASSERT(!DUK_TVAL_IS_HEAP_ALLOCATED(tv)); /* no INCREF for this constant */
86884 DUK_INTERNAL duk_bool_t duk_js_toboolean(duk_tval *tv) { argument
86885 switch (DUK_TVAL_GET_TAG(tv)) {
86890 DUK_ASSERT(DUK_TVAL_GET_BOOLEAN(tv) == 0 || DUK_TVAL_GET_BOOLEAN(tv) == 1);
86891 return DUK_TVAL_GET_BOOLEAN(tv);
86897 duk_hstring *h = DUK_TVAL_GET_STRING(tv);
86911 void *p = DUK_TVAL_GET_POINTER(tv);
86919 if (DUK_TVAL_GET_FASTINT(tv) != 0) {
86931 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv));
86932 DUK_ASSERT(DUK_TVAL_IS_DOUBLE(tv));
86933 d = DUK_TVAL_GET_DOUBLE(tv);
87021 DUK_INTERNAL duk_double_t duk_js_tonumber(duk_hthread *thr, duk_tval *tv) { argument
87023 DUK_ASSERT(tv != NULL);
87025 switch (DUK_TVAL_GET_TAG(tv)) {
87038 if (DUK_TVAL_IS_BOOLEAN_TRUE(tv)) {
87045 duk_hstring *h = DUK_TVAL_GET_STRING(tv);
87056 duk_push_tval(thr, tv);
87070 void *p = DUK_TVAL_GET_POINTER(tv);
87079 return (duk_double_t) DUK_TVAL_GET_FASTINT(tv);
87083 DUK_ASSERT(!DUK_TVAL_IS_UNUSED(tv));
87084 DUK_ASSERT(DUK_TVAL_IS_DOUBLE(tv));
87085 return DUK_TVAL_GET_DOUBLE(tv);
87128 DUK_INTERNAL duk_double_t duk_js_tointeger(duk_hthread *thr, duk_tval *tv) { argument
87130 duk_double_t d = duk_js_tonumber(thr, tv); /* invalidates tv */
87180 DUK_INTERNAL duk_int32_t duk_js_toint32(duk_hthread *thr, duk_tval *tv) { argument
87184 if (DUK_TVAL_IS_FASTINT(tv)) {
87185 return DUK_TVAL_GET_FASTINT_I32(tv);
87189 d = duk_js_tonumber(thr, tv); /* invalidates tv */
87198 DUK_INTERNAL duk_uint32_t duk_js_touint32(duk_hthread *thr, duk_tval *tv) { argument
87202 if (DUK_TVAL_IS_FASTINT(tv)) {
87203 return DUK_TVAL_GET_FASTINT_U32(tv);
87207 d = duk_js_tonumber(thr, tv); /* invalidates tv */
87216 DUK_INTERNAL duk_uint16_t duk_js_touint16(duk_hthread *thr, duk_tval *tv) { argument
87218 return (duk_uint16_t) (duk_js_touint32(thr, tv) & 0x0000ffffU);
87846 duk_tval *tv; local
87930 tv = DUK_GET_TVAL_NEGIDX(thr, -2);
87931 switch (DUK_TVAL_GET_TAG(tv)) {
87946 val = DUK_TVAL_GET_OBJECT(tv);
88186 DUK_INTERNAL duk_bool_t duk_js_isarray(duk_tval *tv) { argument
88187 DUK_ASSERT(tv != NULL);
88188 if (DUK_TVAL_IS_OBJECT(tv)) {
88189 return duk_js_isarray_hobject(DUK_TVAL_GET_OBJECT(tv));
88378 duk_tval *tv, *tv_end; local
88390 tv = DUK_HCOMPFUNC_GET_CONSTS_BASE(thr->heap, f);
88392 while (tv < tv_end) {
88393 DUK_TVAL_INCREF(thr, tv);
88394 tv++;
88950 duk_tval *tv; local
89005 tv = DUK_HOBJECT_E_GET_VALUE_TVAL_PTR(thr->heap, varmap, i);
89006 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv));
89007 DUK_ASSERT(DUK_TVAL_GET_NUMBER(tv) <= (duk_double_t) DUK_UINT32_MAX); /* limits */
89009 DUK_ASSERT(DUK_TVAL_IS_FASTINT(tv));
89010 regnum = (duk_uint_t) DUK_TVAL_GET_FASTINT_U32(tv);
89012 regnum = (duk_uint_t) DUK_TVAL_GET_NUMBER(tv);
89077 duk_tval *tv; local
89094 tv = duk_hobject_find_entry_tval_ptr(thr->heap, env->varmap, name);
89095 if (DUK_UNLIKELY(tv == NULL)) {
89099 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv));
89100 DUK_ASSERT(DUK_TVAL_GET_NUMBER(tv) <= (duk_double_t) DUK_UINT32_MAX); /* limits */
89102 DUK_ASSERT(DUK_TVAL_IS_FASTINT(tv));
89103 reg_rel = (duk_size_t) DUK_TVAL_GET_FASTINT_U32(tv);
89105 reg_rel = (duk_size_t) DUK_TVAL_GET_NUMBER(tv);
89109tv = (duk_tval *) (void *) ((duk_uint8_t *) env->thread->valstack + env->regbase_byteoff + sizeof(…
89110 …DUK_ASSERT(tv >= env->thread->valstack && tv < env->thread->valstack_end); /* XXX: more accurate?…
89112 out->value = tv;
89126 duk_tval *tv; local
89150 tv = duk_hobject_find_entry_tval_ptr(thr->heap, varmap, name);
89151 if (!tv) {
89154 DUK_ASSERT(DUK_TVAL_IS_NUMBER(tv));
89155 reg_rel = (duk_size_t) DUK_TVAL_GET_NUMBER(tv);
89159 tv = (duk_tval *) (void *) ((duk_uint8_t *) thr->valstack + act->bottom_byteoff);
89160 tv += reg_rel;
89162 out->value = tv;
89177 duk_tval *tv; local
89308 tv = duk_hobject_find_entry_tval_ptr_and_attrs(thr->heap, env, name, &attrs);
89309 if (tv) {
89310 out->value = tv;
89842 duk_tval *tv; local
89985 tv = DUK_HOBJECT_E_GET_VALUE_TVAL_PTR(thr->heap, holder, e_idx);
89986 DUK_TVAL_SET_UNDEFINED_UPDREF(thr, tv);
89993 tv = DUK_HOBJECT_E_GET_VALUE_TVAL_PTR(thr->heap, holder, e_idx);
89994 DUK_TVAL_SET_TVAL(tv, val);
89995 DUK_TVAL_INCREF(thr, tv);
97877 DUK_INTERNAL DUK_ALWAYS_INLINE void duk_tval_set_number_chkfast_fast(duk_tval *tv, duk_double_t x) { argument
97900 DUK_TVAL_SET_FASTINT(tv, t);
97906 DUK_TVAL_SET_FASTINT(tv, (duk_int64_t) 0);
97911 DUK_TVAL_SET_FASTINT(tv, (duk_int64_t) DUK_FASTINT_MIN);
97916 DUK_TVAL_SET_DOUBLE(tv, x);
97920 DUK_INTERNAL DUK_NOINLINE void duk_tval_set_number_chkfast_slow(duk_tval *tv, duk_double_t x) { argument
97921 duk_tval_set_number_chkfast_fast(tv, x);
97929 DUK_INTERNAL DUK_ALWAYS_INLINE duk_double_t duk_tval_get_number_packed(duk_tval *tv) { argument
97933 t = (duk_uint64_t) DUK_DBLUNION_GET_UINT64(tv);
97935 return tv->d;
97955 DUK_INTERNAL DUK_ALWAYS_INLINE duk_double_t duk_tval_get_number_unpacked(duk_tval *tv) {
97959 DUK_ASSERT(tv->t == DUK_TAG_NUMBER || tv->t == DUK_TAG_FASTINT);
97961 if (tv->t == DUK_TAG_FASTINT) {
97962 if (tv->v.fi >= 0) {
97963 t = DUK_U64_CONSTANT(0x4330000000000000) | (duk_uint64_t) tv->v.fi;
97967 t = DUK_U64_CONSTANT(0xc330000000000000) | (duk_uint64_t) (-tv->v.fi);
97972 return tv->v.d;
97979 DUK_INTERNAL DUK_ALWAYS_INLINE duk_double_t duk_tval_get_number_unpacked_fastint(duk_tval *tv) { argument
97983 DUK_ASSERT(tv->t == DUK_TAG_FASTINT);
97985 if (tv->v.fi >= 0) {
97986 t = DUK_U64_CONSTANT(0x4330000000000000) | (duk_uint64_t) tv->v.fi;
97990 t = DUK_U64_CONSTANT(0xc330000000000000) | (duk_uint64_t) (-tv->v.fi);
98004 DUK_INTERNAL void duk_tval_assert_valid(duk_tval *tv) { argument
98005 DUK_ASSERT(tv != NULL);