25#ifndef DUK_USE_VARIADIC_MACROS
35#if defined(DUK_USE_VALSTACK_UNSAFE)
37#define DUK__CHECK_SPACE() do { \
38 DUK_ASSERT(!(thr->valstack_top >= thr->valstack_end)); \
41#define DUK__CHECK_SPACE() do { \
42 if (DUK_UNLIKELY(thr->valstack_top >= thr->valstack_end)) { \
43 DUK_ERROR_API(thr, DUK_STR_PUSH_BEYOND_ALLOC_STACK); \
76#if defined(DUK_USE_FASTINT)
77 if (DUK_TVAL_IS_FASTINT(tv)) {
78 duk_int64_t t = DUK_TVAL_GET_FASTINT(tv);
79#if (DUK_INT_MAX <= 0x7fffffffL)
129 goto error_notnumber;
132#if defined(DUK_USE_FASTINT)
133 if (DUK_TVAL_IS_FASTINT(tv)) {
134 duk_int64_t t = DUK_TVAL_GET_FASTINT(tv);
138#if (DUK_UINT_MAX <= 0xffffffffUL)
153 }
else if (d < 0.0) {
374#if defined(DUK_USE_VALSTACK_UNSAFE)
391 if (uindex >= vs_size) {
393#if defined(DUK_USE_ASSERTIONS)
396 count = uindex - vs_size;
406#if defined(DUK_USE_REFERENCE_COUNTING)
409 count = vs_size - uindex;
421 count = vs_size - uindex;
428 }
while (tv != tv_end);
525 new_alloc_size =
sizeof(
duk_tval) * new_size;
532 DUK_D(
DUK_DPRINT(
"failed to resize valstack to %lu entries (%lu bytes)",
533 (
unsigned long) new_size, (
unsigned long) new_alloc_size));
564#if !defined(DUK_USE_PREFER_SIZE)
576 if (old_end_offset_pre != old_end_offset_post) {
577 DUK_D(
DUK_DPRINT(
"valstack was resized during valstack_resize(), probably by mark-and-sweep; "
578 "end offset changed: %lu -> %lu",
579 (
unsigned long) old_end_offset_pre,
580 (
unsigned long) old_end_offset_post));
582 if (old_valstack_pre != old_valstack_post) {
583 DUK_D(
DUK_DPRINT(
"valstack pointer changed during valstack_resize(), probably by mark-and-sweep: %p -> %p",
584 (
void *) old_valstack_pre,
585 (
void *) old_valstack_post));
589 DUK_DD(
DUK_DDPRINT(
"resized valstack to %lu elements (%lu bytes), bottom=%ld, top=%ld, "
590 "new pointers: start=%p end=%p bottom=%p top=%p",
591 (
unsigned long) new_size, (
unsigned long) new_alloc_size,
598 p = (
duk_tval *) (
void *) ((duk_uint8_t *) thr->
valstack + old_end_offset_post);
599 while (p < thr->valstack_end) {
606#if defined(DUK_USE_ASSERTIONS)
608 while (p < thr->valstack_end) {
629 DUK_DDD(
DUK_DDDPRINT(
"check valstack resize: min_new_size=%lu, curr_size=%ld, curr_top=%ld, "
630 "curr_bottom=%ld, shrink=%d, compact=%d, throw=%d",
631 (
unsigned long) min_new_size,
635 (
int) shrink_flag, (
int) compact_flag, (
int) throw_flag));
643#if defined(DUK_USE_PREFER_SIZE)
650 if (min_new_size <= old_size) {
659 new_size = min_new_size;
670 DUK_DD(
DUK_DDPRINT(
"want to %s valstack: %lu -> %lu elements (min_new_size %lu)",
671 (
const char *) (new_size > old_size ?
"grow" :
"shrink"),
672 (
unsigned long) old_size, (
unsigned long) new_size,
673 (
unsigned long) min_new_size));
888 nbytes = (
duk_size_t) (((duk_uint8_t *) q) - ((duk_uint8_t *) p));
891 (
long) to_index, (
void *) p, (
void *) q, (
unsigned long) nbytes));
898 DUK_MEMMOVE((
void *) (p + 1), (
const void *) p, (
size_t) nbytes);
951#ifdef DUK_USE_REFERENCE_COUNTING
971#ifdef DUK_USE_REFERENCE_COUNTING
976 nbytes = (
duk_size_t) (((duk_uint8_t *) q) - ((duk_uint8_t *) p));
977 DUK_MEMMOVE((
void *) p, (
const void *) (p + 1), (
size_t) nbytes);
982#ifdef DUK_USE_REFERENCE_COUNTING
1006 if (to_ctx == from_ctx) {
1025 src = (
void *) ((duk_uint8_t *) from_thr->
valstack_top - nbytes);
1049 q = (
duk_tval *) (
void *) (((duk_uint8_t *) p) - nbytes);
1304 if (out_size !=
NULL) {
1339 if (out_size !=
NULL) {
1370 if (out_size !=
NULL) {
1373 return (
void *) (p + h_bufobj->
offset);
1575 return (
void *)
NULL;
1594 return (
void *)
NULL;
1738#if defined(DUK_USE_FASTINT)
1739 case DUK_TAG_FASTINT:
1926 d = coerce_func(thr, tv);
2005#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
2020 }
else if (d >= 255) {
2030 ret = (duk_uint8_t) d;
2031 ret = (ret + 1) & 0xfe;
2036 ret = (duk_uint8_t) (d + 0.5);
2088#if defined(DUK_USE_DEBUGGER_SUPPORT)
2127#if !defined(DUK_USE_PARANOID_ERRORS)
2165 }
else if (d > dmax) {
2179#if defined(DUK_USE_FASTINT)
2180#if (DUK_INT_MAX <= 0x7fffffffL)
2184 if (res >= DUK_FASTINT_MIN && res <= DUK_FASTINT_MAX) {
2196 *out_clamped = clamped;
2282#if defined(DUK_USE_FASTINT)
2283 case DUK_TAG_FASTINT:
2316 const duk_uint8_t *src_data;
2318 duk_uint8_t *dst_data;
2326 if (h_buf !=
NULL) {
2333 duk_uint8_t *tmp_ptr;
2336 src_data = (
const duk_uint8_t *) tmp_ptr;
2364 DUK_MEMCPY((
void *) dst_data, (
const void *) src_data, (
size_t) src_size);
2370 *out_size = src_size;
2410#if defined(DUK_USE_FASTINT)
2411 case DUK_TAG_FASTINT:
2483 h_bufobj->
buf = h_val;
2548#if defined(DUK_USE_FASTINT)
2549 case DUK_TAG_FASTINT:
2631#if defined(DUK_USE_FASTINT)
2632 case DUK_TAG_FASTINT:
2643#if defined(DUK_USE_VERBOSE_ERRORS) && defined(DUK_USE_PARANOID_ERRORS)
2644DUK_LOCAL const char *duk__type_names[] = {
2664 return duk__type_names[type_tag];
2700#if defined(DUK_USE_FASTINT)
2701 case DUK_TAG_FASTINT:
2953 }
while (--sanity > 0);
3051#if defined(DUK_USE_FASTINT)
3059#if DUK_INT_MAX <= 0x7fffffffL
3062 if (val >= DUK_FASTINT_MIN && val <= DUK_FASTINT_MAX) {
3084#if defined(DUK_USE_FASTINT)
3092#if DUK_UINT_MAX <= 0xffffffffUL
3095 if (val <= DUK_FASTINT_MAX) {
3178#ifdef DUK_USE_FILE_IO
3273 if (check_object_coercible) {
3283 if (check_object_coercible &&
3473 if (sz <=
sizeof(stack_buf)) {
3475 }
else if (!pushed_buf) {
3551 if (prototype_bidx >= 0) {
3610#if defined(DUK_USE_FASTINT)
3644#if defined(DUK_USE_ROM_STRINGS)
3647#if defined(DUK_USE_HEAPPTR16)
3648 obj->strs16 = thr->strs16;
3731 duk_int16_t func_nargs;
3743 func_nargs = (duk_int16_t) nargs;
3756 obj->
nargs = func_nargs;
3894#define DUK__PACK_ARGS(classnum,protobidx,elemtype,elemshift,isview) \
3895 (((classnum) << 24) | ((protobidx) << 16) | ((elemtype) << 8) | ((elemshift) << 4) | (isview))
3897#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
3919#undef DUK__PACK_ARGS
3929 duk_uint_t uint_offset, uint_length, uint_added;
3946 uint_added = uint_offset + uint_length;
3947 if (uint_added < uint_offset) {
3950 DUK_ASSERT(uint_added >= uint_offset && uint_added >= uint_length);
3953 lookupidx = flags & 0x0f;
3958 classnum = tmp >> 24;
3959 protobidx = (tmp >> 16) & 0xff;
3971 h_bufobj->
buf = h_val;
3973 h_bufobj->
offset = uint_offset;
3974 h_bufobj->
length = uint_length;
3975 h_bufobj->
shift = (tmp >> 4) & 0x0f;
3976 h_bufobj->
elem_type = (tmp >> 8) & 0xff;
3977 h_bufobj->
is_view = tmp & 0x0f;
3980#if defined(DUK_USE_BUFFEROBJECT_SUPPORT)
3994 h_bufobj->
buf = h_val;
3996 h_bufobj->
offset = uint_offset;
3997 h_bufobj->
length = uint_length;
4023#ifdef DUK_USE_AUGMENT_ERROR_CREATE
4033#ifdef DUK_USE_AUGMENT_ERROR_CREATE
4036 err_code = err_code & (~DUK_ERRCODE_FLAG_NOBLAME_FILELINE);
4063#ifdef DUK_USE_AUGMENT_ERROR_CREATE
4083#if !defined(DUK_USE_VARIADIC_MACROS)
4129 return (
void *) buf_data;
4141 goto push_undefined;
4155 goto push_undefined;
4243#if defined(DUK_USE_REFERENCE_COUNTING)
4267#if defined(DUK_USE_PREFER_SIZE)
4285#ifdef DUK_USE_REFERENCE_COUNTING
4330#if defined(DUK_USE_AUGMENT_ERROR_THROW)
4356 (
long) err_code, (
const char *) err_msg));
4385#if !defined(DUK_USE_VARIADIC_MACROS)
4387 const char *filename;
4417 if ((tv1 ==
NULL) || (tv2 ==
NULL)) {
4434 if ((tv1 ==
NULL) || (tv2 ==
NULL)) {
4510 duk_uint8_t buf[32 * 2];
4518#if defined(DUK_USE_INTEGER_LE)
4523 for (i = 0; i < sz; i++) {
4524#if defined(DUK_USE_INTEGER_LE)
4536#if !defined(DUK_USE_PARANOID_ERRORS)
4544#define DUK__READABLE_STRING_MAXCHARS 32
4553 const duk_uint8_t *p, *p_start, *p_end;
4656#undef DUK__CHECK_SPACE
4657#undef DUK__PACK_ARGS
4658#undef DUK__READABLE_STRING_MAXCHARS
#define DUK_UNREACHABLE()
unsigned int duk_small_uint_t
duk_uint_t duk_ucodepoint_t
duk_small_int_t duk_ret_t
#define DUK_VA_COPY(dest, src)
duk_int_fast32_t duk_int_t
duk_uint_fast32_t duk_uint_t
duk_small_int_t duk_bool_t
DUK_EXTERNAL void duk_concat(duk_context *ctx, duk_idx_t count)
#define DUK_HOBJECT_CLASS_BOOLEAN
#define DUK_LJ_TYPE_THROW
#define DUK_TVAL_DECREF(thr, tv)
#define DUK_STR_STRING_TOO_LONG
#define DUK_BIDX_ARRAYBUFFER_PROTOTYPE
#define DUK_TVAL_SET_TVAL(v, x)
#define DUK_BIDX_UINT8ARRAY_PROTOTYPE
#define DUK_ERROR_RANGE(thr, msg)
#define DUK_HOBJECT_FLAG_NEWENV
#define DUK_TVAL_SET_NUMBER_UPDREF
#define DUK_ASSERT_CTX_VALID(ctx)
#define DUK_TVAL_SET_FASTINT_U32_UPDREF
#define DUK_HTHREAD_STRING_UC_UNDEFINED(thr)
#define DUK_STR_NUMBER_OUTSIDE_RANGE
#define DUK_TVAL_SET_NULL(tv)
#define DUK_HSTRING_GET_DATA(x)
DUK_INTERNAL_DECL void duk_err_setup_heap_ljstate(duk_hthread *thr, duk_small_int_t lj_type)
#define DUK_TVAL_SET_FASTINT_U32(tv, val)
DUK_INTERNAL_DECL duk_uint16_t duk_js_touint16(duk_hthread *thr, duk_tval *tv)
#define DUK_HEAPHDR_GET_TYPE(h)
#define DUK_HOBJECT_GET_PROTOTYPE(heap, h)
#define DUK_TVAL_IS_NUMBER(tv)
#define DUK_STR_NOT_COMPILEDFUNCTION
#define DUK_VALSTACK_SHRINK_THRESHOLD
#define DUK_HOBJECT_FLAG_CONSTRUCTABLE
#define DUK_ERROR_TYPE(thr, msg)
#define DUK_HOBJECT_CLASS_BUFFER
DUK_INTERNAL void duk_err_longjmp(duk_hthread *thr)
#define DUK_BIDX_EVAL_ERROR_PROTOTYPE
DUK_INTERNAL_DECL duk_bool_t duk_get_prop_stridx(duk_context *ctx, duk_idx_t obj_index, duk_small_int_t stridx)
#define DUK_STR_DEFAULTVALUE_COERCE_FAILED
#define DUK_STRIDX_LC_BUFFER
#define DUK_HBUFFER_INCREF(thr, h)
DUK_INTERNAL duk_hbufferobject * duk_hbufferobject_alloc(duk_heap *heap, duk_uint_t hobject_flags)
#define DUK_LFUNC_NARGS_MAX
#define DUK_HOBJECT_CLASS_INT32ARRAY
#define DUK_VSRESIZE_FLAG_THROW
DUK_INTERNAL_DECL duk_small_int_t duk_unicode_encode_xutf8(duk_ucodepoint_t cp, duk_uint8_t *out)
#define DUK_HBUFFEROBJECT_ELEM_INT32
#define DUK_STR_POP_TOO_MANY
DUK_INTERNAL_DECL void duk_numconv_stringify(duk_context *ctx, duk_small_int_t radix, duk_small_int_t digits, duk_small_uint_t flags)
#define DUK_TVAL_SET_OBJECT(tv, hptr)
#define DUK_HOBJECT_CLASS_POINTER
#define DUK_TVAL_GET_OBJECT(tv)
#define DUK_HOBJECT_CLASS_NUMBER_TO_STRIDX(n)
DUK_EXTERNAL void duk_compact(duk_context *ctx, duk_idx_t obj_index)
DUK_INTERNAL_DECL duk_bool_t duk_js_instanceof(duk_hthread *thr, duk_tval *tv_x, duk_tval *tv_y)
#define DUK_HEAPHDR_CHECK_FLAG_BITS(h, bits)
DUK_INTERNAL_DECL duk_hnativefunction * duk_hnativefunction_alloc(duk_heap *heap, duk_uint_t hobject_flags)
#define DUK_HOBJECT_FLAG_NOTAIL
#define DUK_HEAP_NUM_STRINGS
#define DUK_BIDX_INT8ARRAY_PROTOTYPE
#define DUK_HOBJECT_CLASS_OBJECT
#define DUK_STR_INVALID_CALL_ARGS
#define DUK_BIDX_OBJECT_PROTOTYPE
#define DUK_STR_NOT_NATIVEFUNCTION
#define DUK_BIDX_TYPE_ERROR_PROTOTYPE
#define DUK_TVAL_IS_NULL(tv)
#define DUK_HBUFFER_MAX_BYTELEN
#define DUK_HOBJECT_FLAG_COMPILEDFUNCTION
#define DUK_TVAL_IS_BUFFER(tv)
#define DUK_PUSH_SPRINTF_SANITY_LIMIT
#define DUK_LFUNC_LENGTH_MAX
#define DUK_STR_VALSTACK_LIMIT
#define DUK_STRIDX_MESSAGE
#define DUK_TVAL_IS_UNDEFINED(tv)
#define DUK_HOBJECT_IS_COMPILEDFUNCTION(h)
#define DUK_TVAL_GET_LIGHTFUNC_FUNCPTR(tv)
DUK_INTERNAL_DECL duk_hstring * duk_heap_string_intern_checked(duk_hthread *thr, const duk_uint8_t *str, duk_uint32_t len)
#define DUK_BIDX_POINTER_PROTOTYPE
#define DUK_TVAL_SET_BUFFER(tv, hptr)
#define DUK_TVAL_IS_OBJECT(tv)
#define DUK_HOBJECT_CLASS_INT16ARRAY
#define DUK_BIDX_FUNCTION_PROTOTYPE
#define DUK_PROPDESC_FLAGS_NONE
#define DUK_TVAL_GET_BUFFER(tv)
#define DUK_STR_BUFFER_TOO_LONG
#define DUK_TVAL_SET_NULL_UPDREF
#define DUK_BIDX_DATAVIEW_PROTOTYPE
DUK_INTERNAL_DECL duk_double_t duk_js_tointeger(duk_hthread *thr, duk_tval *tv)
#define DUK_HBUFFEROBJECT_VALID_SLICE(h)
#define DUK_HOBJECT_CLASS_FUNCTION
#define DUK_ASC_BACKSLASH
#define DUK_HSTRING_GET_CHARLEN(x)
DUK_INTERNAL_DECL duk_uint32_t duk_js_touint32(duk_hthread *thr, duk_tval *tv)
#define DUK_HOBJECT_CLASS_ARRAY
#define DUK_ERROR_API_INDEX(thr, index)
DUK_INTERNAL_DECL duk_hcompiledfunction * duk_hcompiledfunction_alloc(duk_heap *heap, duk_uint_t hobject_flags)
#define DUK_HOBJECT_CLASS_DATE
#define DUK_TVAL_INCREF(thr, tv)
DUK_INTERNAL const duk_uint8_t duk_lc_digits[36]
#define DUK_REALLOC_INDIRECT(heap, cb, ud, newsize)
DUK_INTERNAL_DECL void duk_hthread_create_builtin_objects(duk_hthread *thr)
#define DUK_TVAL_GET_TAG(tv)
#define DUK_VSRESIZE_FLAG_SHRINK
#define DUK_HBUFFEROBJECT_ELEM_INT16
#define DUK_HOBJECT_SET_PROTOTYPE_UPDREF(thr, h, p)
#define DUK_BIDX_STRING_PROTOTYPE
#define DUK_HOBJECT_CLASS_UINT8CLAMPEDARRAY
#define DUK_TVAL_IS_POINTER(tv)
#define DUK_STRIDX_LC_UNDEFINED
#define DUK_ASSERT_HBUFFEROBJECT_VALID(h)
#define DUK_TVAL_IS_UNUSED(tv)
#define DUK_HOBJECT_FLAG_BUFFEROBJECT
#define DUK_HOBJECT_GET_CLASS_STRING(heap, h)
#define DUK_BIDX_UINT8CLAMPEDARRAY_PROTOTYPE
#define DUK_PROPDESC_FLAGS_C
#define DUK_BIDX_INT32ARRAY_PROTOTYPE
#define DUK_STR_NOT_OBJECT_COERCIBLE
#define DUK_HOBJECT_SET_EXOTIC_ARRAY(h)
#define DUK_ASSERT_DISABLE(x)
#define DUK_STR_NOT_OBJECT
DUK_INTERNAL_DECL duk_hthread * duk_hthread_alloc(duk_heap *heap, duk_uint_t hobject_flags)
#define DUK_ERROR_API(thr, msg)
#define DUK_BIDX_FLOAT32ARRAY_PROTOTYPE
#define DUK_HOBJECT_CLASS_AS_FLAGS(v)
#define DUK_HOBJECT_CLASS_NUMBER
#define DUK_ERROR_ALLOC_DEFMSG(thr)
#define DUK_LFUNC_MAGIC_MIN
#define DUK_HTHREAD_STATE_INACTIVE
#define DUK_HTHREAD_STRING_UC_NULL(thr)
#define DUK_STR_NOT_THREAD
#define DUK_TVAL_SET_BOOLEAN_UPDREF
#define DUK_STR_INVALID_COUNT
#define DUK_LFUNC_NARGS_VARARGS
DUK_INTERNAL_DECL duk_hobject * duk_error_prototype_from_code(duk_hthread *thr, duk_errcode_t err_code)
#define DUK_HOBJECT_IS_THREAD(h)
#define DUK_TVAL_GET_STRING(tv)
DUK_INTERNAL_DECL duk_int32_t duk_js_toint32(duk_hthread *thr, duk_tval *tv)
#define DUK_TVAL_SET_FASTINT(tv, val)
DUK_INTERNAL_DECL void duk_err_augment_error_create(duk_hthread *thr, duk_hthread *thr_callstack, const char *filename, duk_int_t line, duk_bool_t noblame_fileline)
#define DUK_BIDX_ARRAY_PROTOTYPE
#define DUK_HSTRING_INCREF(thr, h)
#define DUK_HOBJECT_FLAG_EXOTIC_STRINGOBJ
#define DUK_ERROR_UNSUPPORTED(thr, msg)
#define DUK_TVAL_SET_TVAL_UPDREF
#define DUK_HOBJECT_IS_NATIVEFUNCTION(h)
#define DUK_PUSH_SPRINTF_INITIAL_SIZE
#define DUK_STR_NOT_FUNCTION
#define DUK_HTHREAD_INCREF(thr, h)
#define DUK_BIDX_ERROR_PROTOTYPE
#define DUK_TVAL_IS_STRING(tv)
#define DUK_LFUNC_FLAGS_PACK(magic, length, nargs)
#define DUK_HOBJECT_CLASS_ERROR
#define DUK_VSRESIZE_FLAG_COMPACT
#define DUK_BIDX_REFERENCE_ERROR_PROTOTYPE
#define DUK_BIDX_URI_ERROR_PROTOTYPE
#define DUK_HOBJECT_CLASS_FLOAT32ARRAY
#define DUK_HOBJECT_FLAG_BOUND
#define DUK_TVAL_SET_POINTER(tv, hptr)
#define DUK_HOBJECT_IS_BUFFEROBJECT(h)
#define DUK_TVAL_IS_LIGHTFUNC(tv)
#define DUK_HSTRING_GET_BYTELEN(x)
DUK_INTERNAL_DECL duk_bool_t duk_hthread_init_stacks(duk_heap *heap, duk_hthread *thr)
#define DUK_ASC_SINGLEQUOTE
#define DUK_VALSTACK_GROW_STEP
#define DUK_HOBJECT_CLASS_UINT8ARRAY
#define DUK_BIDX_NUMBER_PROTOTYPE
#define DUK_STRIDX_LC_NULL
#define DUK_STRIDX_EMPTY_STRING
#define DUK_BIDX_SYNTAX_ERROR_PROTOTYPE
#define DUK_BIDX_UINT32ARRAY_PROTOTYPE
#define DUK_HOBJECT_FLAG_EXOTIC_DUKFUNC
#define DUK_STRIDX_LENGTH
#define DUK_HBUFFEROBJECT_ELEM_FLOAT64
#define DUK_TVAL_SET_BOOLEAN_TRUE(v)
#define DUK_STRIDX_INT_VALUE
#define DUK_BIDX_FLOAT64ARRAY_PROTOTYPE
#define DUK_HBUFFEROBJECT_ELEM_UINT32
#define DUK_HBUFFEROBJECT_ELEM_UINT16
DUK_INTERNAL_DECL void duk_hthread_sync_and_null_currpc(duk_hthread *thr)
#define DUK_HOBJECT_CLASS_UINT32ARRAY
#define DUK_HOBJECT_CLASS_THREAD
#define DUK_ERROR_REQUIRE_TYPE_INDEX(thr, index, expectname, lowmemstr)
#define DUK_TVAL_IS_HEAP_ALLOCATED(tv)
#define DUK_HOBJECT_FLAG_STRICT
#define DUK_HSTRING_MAX_BYTELEN
#define DUK_STRIDX_TO_STRING
#define DUK_HOBJECT_HAS_NATIVEFUNCTION(h)
#define DUK_HOBJECT_PROTOTYPE_CHAIN_SANITY
DUK_EXTERNAL duk_int_t duk_safe_call(duk_context *ctx, duk_safe_call_function func, duk_idx_t nargs, duk_idx_t nrets)
#define DUK_BIDX_BOOLEAN_PROTOTYPE
struct duk_tval_struct duk_tval
#define DUK_PANIC(code, msg)
#define DUK_LFUNC_LENGTH_MIN
DUK_INTERNAL_DECL void duk_err_augment_error_throw(duk_hthread *thr)
#define DUK_HOBJECT_CLASS_MAX
#define DUK_HOBJECT_FLAG_THREAD
#define DUK_VALSTACK_INITIAL_SIZE
#define DUK_LFUNC_FLAGS_GET_MAGIC(lf_flags)
DUK_EXTERNAL void duk_call_method(duk_context *ctx, duk_idx_t nargs)
#define DUK_TAG_UNDEFINED
#define DUK_STR_INVALID_CONTEXT
#define DUK_PROPDESC_FLAGS_WC
#define DUK_HTHREAD_GET_STRING(thr, idx)
#define DUK_STR_NOT_STRING
#define duk_js_equals(thr, tv_x, tv_y)
#define DUK_BIDX_THREAD_PROTOTYPE
#define DUK_STR_PUSH_BEYOND_ALLOC_STACK
#define DUK_BIDX_BUFFER_PROTOTYPE
#define DUK_TVAL_GET_POINTER(tv)
#define DUK_HOBJECT_CLASS_INT8ARRAY
#define DUK_HNATIVEFUNCTION_NARGS_VARARGS
DUK_INTERNAL_DECL void duk_hobject_define_property_internal(duk_hthread *thr, duk_hobject *obj, duk_hstring *key, duk_small_uint_t flags)
DUK_INTERNAL_DECL duk_hbuffer * duk_hbuffer_alloc(duk_heap *heap, duk_size_t size, duk_small_uint_t flags, void **out_bufdata)
#define DUK_BIDX_NODEJS_BUFFER_PROTOTYPE
#define DUK_HOBJECT_FLAG_EXTENSIBLE
DUK_EXTERNAL void * duk_resize_buffer(duk_context *ctx, duk_idx_t index, duk_size_t new_size)
#define DUK_STR_NOT_BOOLEAN
#define DUK_HOBJECT_FLAG_NATIVEFUNCTION
DUK_INTERNAL_DECL duk_uint32_t duk_hobject_get_length(duk_hthread *thr, duk_hobject *obj)
#define DUK_TVAL_GET_LIGHTFUNC(tv, out_fp, out_flags)
#define duk_js_strict_equals(tv_x, tv_y)
#define DUK_HOBJECT_CLASS_UINT16ARRAY
#define DUK_VALSTACK_API_ENTRY_MINIMUM
#define DUK_TVAL_SET_BOOLEAN_FALSE(v)
#define DUK_LFUNC_NARGS_MIN
#define DUK_HBUFFEROBJECT_ELEM_FLOAT32
#define DUK_TVAL_SET_FASTINT_I32(tv, val)
#define DUK_TVAL_GET_BOOLEAN(tv)
#define DUK_TVAL_SET_BOOLEAN(tv, val)
#define DUK_HBUFFER_GET_DATA_PTR(heap, x)
#define DUK_HOBJECT_INCREF(thr, h)
#define DUK_TVAL_SET_LIGHTFUNC(tv, fp, flags)
DUK_INTERNAL_DECL duk_double_t duk_js_tonumber(duk_hthread *thr, duk_tval *tv)
#define DUK_TVAL_SET_UNDEFINED_UPDREF
#define DUK_HTHREAD_STRING_EMPTY_STRING(thr)
#define DUK_STR_NOT_NUMBER
#define DUK_TVAL_GET_NUMBER(tv)
#define DUK_HOBJECT_GET_CLASS_NUMBER(h)
#define DUK_HOBJECT_SET_EXOTIC_DUKFUNC(h)
#define DUK_LFUNC_FLAGS_GET_NARGS(lf_flags)
#define DUK_LFUNC_FLAGS_GET_LENGTH(lf_flags)
#define DUK_TVAL_GET_HEAPHDR(tv)
#define DUK_STRIDX_VALUE_OF
#define DUK_LFUNC_MAGIC_MAX
#define DUK_HBUFFEROBJECT_ELEM_UINT8CLAMPED
#define DUK_STR_SPRINTF_TOO_LONG
DUK_INTERNAL_DECL void duk_hobject_set_length(duk_hthread *thr, duk_hobject *obj, duk_uint32_t length)
DUK_INTERNAL_DECL void duk_xdef_prop_stridx(duk_context *ctx, duk_idx_t obj_index, duk_small_int_t stridx, duk_small_uint_t desc_flags)
DUK_INTERNAL_DECL void * duk_hthread_get_valstack_ptr(duk_heap *heap, void *ud)
#define DUK_BIDX_RANGE_ERROR_PROTOTYPE
#define DUK_STR_NOT_BUFFER
#define DUK_HTHREAD_STRING_LENGTH(thr)
#define DUK_TVAL_SET_UNDEFINED(tv)
#define DUK_STR_NOT_UNDEFINED
#define DUK_STRIDX_UC_ERROR
#define DUK_STR_UNEXPECTED_TYPE
#define DUK_HOBJECT_HAS_EXTENSIBLE(h)
#define DUK_HOBJECT_CLASS_STRING
#define DUK_HBUFFER_HAS_EXTERNAL(x)
#define DUK_HNATIVEFUNCTION_NARGS_MAX
#define DUK_HBUFFER_HAS_DYNAMIC(x)
#define DUK_HOBJECT_CLASS_ARRAYBUFFER
#define DUK_STR_NOT_POINTER
#define DUK_ERRCODE_FLAG_NOBLAME_FILELINE
#define DUK_HOBJECT_CLASS_DATAVIEW
#define DUK_VALSTACK_SHRINK_SPARE
#define DUK_BIDX_INT16ARRAY_PROTOTYPE
#define DUK_TVAL_SET_STRING(tv, hptr)
#define DUK_PROPDESC_FLAGS_W
#define DUK_UNICODE_MAX_XUTF8_LENGTH
#define DUK_TVAL_IS_BOOLEAN(tv)
#define DUK_BIDX_UINT16ARRAY_PROTOTYPE
DUK_INTERNAL_DECL duk_bool_t duk_js_toboolean(duk_tval *tv)
#define DUK_TVAL_SET_NUMBER(tv, val)
DUK_INTERNAL_DECL duk_small_int_t duk_unicode_decode_xutf8(duk_hthread *thr, const duk_uint8_t **ptr, const duk_uint8_t *ptr_start, const duk_uint8_t *ptr_end, duk_ucodepoint_t *out_cp)
#define DUK_HBUFFER_GET_SIZE(x)
#define DUK_TVAL_GET_LIGHTFUNC_FLAGS(tv)
#define DUK_HBUFFEROBJECT_ELEM_INT8
DUK_INTERNAL_DECL duk_hobject * duk_hobject_alloc(duk_heap *heap, duk_uint_t hobject_flags)
#define DUK_TVAL_SET_FASTINT_I32_UPDREF
#define DUK_HBUFFEROBJECT_ELEM_UINT8
#define DUK_HOBJECT_CLASS_FLOAT64ARRAY
#define DUK_VALSTACK_INTERNAL_EXTRA
DUK_INTERNAL_DECL void duk_hthread_copy_builtin_objects(duk_hthread *thr_from, duk_hthread *thr_to)
#define DUK_HOBJECT_FLAG_ARRAY_PART
#define DUK_TAG_LIGHTFUNC
DUK_INTERNAL_DECL duk_activation * duk_hthread_get_current_activation(duk_hthread *thr)
#define DUK_ERR_TYPE_ERROR
#define DUK_STRING_PUSH_SAFE
#define DUK_TYPE_MASK_STRING
#define DUK_DBLUNION_SET_NAN(u)
#define DUK_TYPE_LIGHTFUNC
#define duk_is_primitive(ctx, index)
#define duk_push_fixed_buffer(ctx, size)
#define DUK_TYPE_UNDEFINED
#define DUK_TYPE_MASK_OBJECT
#define DUK_BUF_MODE_DONTCARE
#define duk_safe_to_string(ctx, index)
#define DUK_BUF_MODE_DYNAMIC
#define DUK_DBLUNION_IS_NORMALIZED(u)
#define DUK_TYPE_MASK_BUFFER
#define DUK_DBLUNION_NORMALIZE_NAN_CHECK(u)
#define DUK_TYPE_MASK_LIGHTFUNC
#define DUK_TYPE_MASK_NONE
#define DUK_ERR_API_ERROR
#define DUK_TYPE_MASK_NULL
#define DUK_TYPE_MASK_NUMBER
#define DUK_ERR_EVAL_ERROR
#define DUK_BUFOBJ_CREATE_ARRBUF
#define DUK_ERR_SYNTAX_ERROR
#define DUK_INVALID_INDEX
#define DUK_ERR_RANGE_ERROR
#define duk_push_buffer(ctx, size, dynamic)
#define DUK_TYPE_MASK_BOOLEAN
#define DUK_TYPE_MASK_THROW
duk_ret_t(* duk_c_function)(duk_context *ctx)
#define DUK_THREAD_NEW_GLOBAL_ENV
#define DUK_TYPE_MASK_POINTER
#define DUK_BUF_MODE_FIXED
#define DUK_ERR_REFERENCE_ERROR
#define duk_is_callable(ctx, index)
#define duk_push_dynamic_buffer(ctx, size)
#define DUK_TYPE_MASK_UNDEFINED
#define DUK_ERR_URI_ERROR
DUK_EXTERNAL duk_bool_t duk_require_boolean(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void * duk_to_pointer(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_error_stash(duk_context *ctx, duk_errcode_t err_code, const char *fmt,...)
DUK_INTERNAL void duk_push_c_function_noexotic(duk_context *ctx, duk_c_function func, duk_int_t nargs)
DUK_INTERNAL const char * duk_push_string_readable(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL duk_hstring * duk_to_hstring(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void * duk_push_buffer_raw(duk_context *ctx, duk_size_t size, duk_small_uint_t flags)
DUK_EXTERNAL void duk_pop_2(duk_context *ctx)
DUK_EXTERNAL const char * duk_push_string(duk_context *ctx, const char *str)
DUK_INTERNAL duk_hthread * duk_require_hthread(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL const char * duk_get_lstring(duk_context *ctx, duk_idx_t index, duk_size_t *out_len)
DUK_EXTERNAL duk_idx_t duk_normalize_index(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL duk_int_t duk_to_int_clamped_raw(duk_context *ctx, duk_idx_t index, duk_int_t minval, duk_int_t maxval, duk_bool_t *out_clamped)
DUK_INTERNAL duk_idx_t duk_push_object_helper_proto(duk_context *ctx, duk_uint_t hobject_flags_and_class, duk_hobject *proto)
DUK_EXTERNAL void duk_throw(duk_context *ctx)
DUK_EXTERNAL duk_bool_t duk_is_undefined(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL duk_hobject * duk_require_hobject(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_idx_t duk_require_normalize_index(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL const char * duk_push_string_file_raw(duk_context *ctx, const char *path, duk_uint_t flags)
DUK_EXTERNAL void duk_push_this(duk_context *ctx)
DUK_EXTERNAL void duk_push_true(duk_context *ctx)
DUK_LOCAL void duk__push_stash(duk_context *ctx)
DUK_EXTERNAL duk_bool_t duk_is_fixed_buffer(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_bool_t duk_is_thread(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_swap(duk_context *ctx, duk_idx_t index1, duk_idx_t index2)
DUK_EXTERNAL duk_double_t duk_require_number(duk_context *ctx, duk_idx_t index)
#define DUK__PACK_ARGS(classnum, protobidx, elemtype, elemshift, isview)
DUK_EXTERNAL duk_bool_t duk_is_pointer(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_double_t duk_get_number(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_errcode_t duk_get_error_code(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL duk_int_t duk_to_int_check_range(duk_context *ctx, duk_idx_t index, duk_int_t minval, duk_int_t maxval)
DUK_EXTERNAL void duk_to_primitive(duk_context *ctx, duk_idx_t index, duk_int_t hint)
DUK_EXTERNAL duk_bool_t duk_get_boolean(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_bool_t duk_check_type(duk_context *ctx, duk_idx_t index, duk_int_t type)
DUK_INTERNAL void duk_push_lightfunc_tostring(duk_context *ctx, duk_tval *tv)
DUK_EXTERNAL const char * duk_safe_to_lstring(duk_context *ctx, duk_idx_t index, duk_size_t *out_len)
DUK_EXTERNAL void duk_push_boolean(duk_context *ctx, duk_bool_t val)
DUK_LOCAL duk_bool_t duk__resize_valstack(duk_context *ctx, duk_size_t new_size)
DUK_EXTERNAL duk_bool_t duk_is_function(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_int_t duk_api_global_line
DUK_EXTERNAL void duk_to_undefined(duk_context *ctx, duk_idx_t index)
DUK_LOCAL void duk__push_hstring_readable_unicode(duk_context *ctx, duk_hstring *h_input)
DUK_INTERNAL void duk_push_c_function_noconstruct_noexotic(duk_context *ctx, duk_c_function func, duk_int_t nargs)
DUK_EXTERNAL duk_bool_t duk_check_type_mask(duk_context *ctx, duk_idx_t index, duk_uint_t mask)
DUK_INTERNAL void duk_push_lightfunc_name(duk_context *ctx, duk_tval *tv)
DUK_EXTERNAL void * duk_require_heapptr(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_idx_t duk_require_top_index(duk_context *ctx)
DUK_EXTERNAL void duk_require_null(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_size_t duk_get_length(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL void duk_set_length(duk_context *ctx, duk_idx_t index, duk_size_t length)
DUK_LOCAL duk_double_t duk__to_int_uint_helper(duk_context *ctx, duk_idx_t index, duk__toint_coercer coerce_func)
DUK_EXTERNAL duk_bool_t duk_is_valid_index(duk_context *ctx, duk_idx_t index)
DUK_LOCAL duk_bool_t duk__obj_flag_any_default_false(duk_context *ctx, duk_idx_t index, duk_uint_t flag_mask)
DUK_INTERNAL void duk_push_hstring_stridx(duk_context *ctx, duk_small_int_t stridx)
DUK_EXTERNAL void * duk_get_buffer(duk_context *ctx, duk_idx_t index, duk_size_t *out_size)
DUK_INTERNAL duk_hobject * duk_require_hobject_with_class(duk_context *ctx, duk_idx_t index, duk_small_uint_t classnum)
DUK_LOCAL duk_int_t duk__try_push_vsprintf(duk_context *ctx, void *buf, duk_size_t sz, const char *fmt, va_list ap)
DUK_EXTERNAL void duk_require_stack(duk_context *ctx, duk_idx_t extra)
DUK_EXTERNAL duk_bool_t duk_instanceof(duk_context *ctx, duk_idx_t index1, duk_idx_t index2)
DUK_EXTERNAL const char * duk_to_lstring(duk_context *ctx, duk_idx_t index, duk_size_t *out_len)
DUK_EXTERNAL duk_idx_t duk_push_error_object_va_raw(duk_context *ctx, duk_errcode_t err_code, const char *filename, duk_int_t line, const char *fmt, va_list ap)
DUK_EXTERNAL void * duk_get_pointer(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_bool_t duk_equals(duk_context *ctx, duk_idx_t index1, duk_idx_t index2)
DUK_EXTERNAL duk_bool_t duk_to_boolean(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL const char * duk_push_lstring(duk_context *ctx, const char *str, duk_size_t len)
DUK_EXTERNAL void duk_remove(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL duk_hcompiledfunction * duk_require_hcompiledfunction(duk_context *ctx, duk_idx_t index)
DUK_LOCAL_DECL duk_idx_t duk__push_c_function_raw(duk_context *ctx, duk_c_function func, duk_idx_t nargs, duk_uint_t flags)
DUK_INTERNAL duk_hnativefunction * duk_get_hnativefunction(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_idx_t duk_push_c_function(duk_context *ctx, duk_c_function func, duk_int_t nargs)
DUK_INTERNAL duk_hobject * duk_get_hobject_or_lfunc_coerce(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_push_buffer_object(duk_context *ctx, duk_idx_t idx_buffer, duk_size_t byte_offset, duk_size_t byte_length, duk_uint_t flags)
DUK_EXTERNAL const char * duk_api_global_filename
DUK_EXTERNAL void duk_push_null(duk_context *ctx)
DUK_EXTERNAL void duk_push_int(duk_context *ctx, duk_int_t val)
DUK_EXTERNAL void duk_pop_3(duk_context *ctx)
DUK_EXTERNAL duk_int_t duk_get_int(duk_context *ctx, duk_idx_t index)
duk_double_t(* duk__toint_coercer)(duk_hthread *thr, duk_tval *tv)
DUK_EXTERNAL void duk_push_current_function(duk_context *ctx)
static const duk_uint32_t duk__bufobj_flags_lookup[]
DUK_EXTERNAL void duk_xcopymove_raw(duk_context *to_ctx, duk_context *from_ctx, duk_idx_t count, duk_bool_t is_copy)
DUK_EXTERNAL duk_double_t duk_to_number(duk_context *ctx, duk_idx_t index)
DUK_LOCAL void duk__push_this_helper(duk_context *ctx, duk_small_uint_t check_object_coercible)
DUK_EXTERNAL void duk_dup_top(duk_context *ctx)
DUK_EXTERNAL duk_bool_t duk_is_number(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_int_t duk_get_type(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_replace(duk_context *ctx, duk_idx_t to_index)
DUK_EXTERNAL void duk_push_pointer(duk_context *ctx, void *val)
DUK_INTERNAL duk_uint8_t duk_to_uint8clamped(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_idx_t duk_push_thread_raw(duk_context *ctx, duk_uint_t flags)
DUK_EXTERNAL void duk_require_stack_top(duk_context *ctx, duk_idx_t top)
DUK_INTERNAL void duk_push_hobject_bidx(duk_context *ctx, duk_small_int_t builtin_idx)
DUK_EXTERNAL void * duk_require_pointer(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_to_defaultvalue(duk_context *ctx, duk_idx_t index, duk_int_t hint)
DUK_EXTERNAL const char * duk_get_string(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_idx_t duk_push_c_lightfunc(duk_context *ctx, duk_c_function func, duk_idx_t nargs, duk_idx_t length, duk_int_t magic)
DUK_EXTERNAL duk_bool_t duk_is_bound_function(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL duk_bool_t duk_valstack_resize_raw(duk_context *ctx, duk_size_t min_new_size, duk_small_uint_t flags)
DUK_EXTERNAL duk_bool_t duk_is_object(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_uint_t duk_get_type_mask(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_bool_t duk_is_dynamic_buffer(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL duk_hobject * duk_require_hobject_or_lfunc_coerce(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_uint_t duk_to_uint(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void * duk_require_buffer(duk_context *ctx, duk_idx_t index, duk_size_t *out_size)
DUK_EXTERNAL duk_bool_t duk_is_lightfunc(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_set_top(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL duk_hbuffer * duk_require_hbuffer(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_idx_t duk_push_object(duk_context *ctx)
DUK_EXTERNAL duk_bool_t duk_is_boolean(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_push_heap_stash(duk_context *ctx)
DUK_EXTERNAL duk_idx_t duk_get_top_index(duk_context *ctx)
DUK_EXTERNAL void duk_dup(duk_context *ctx, duk_idx_t from_index)
DUK_EXTERNAL const char * duk_push_vsprintf(duk_context *ctx, const char *fmt, va_list ap)
DUK_EXTERNAL void duk_insert(duk_context *ctx, duk_idx_t to_index)
DUK_EXTERNAL void * duk_require_buffer_data(duk_context *ctx, duk_idx_t index, duk_size_t *out_size)
DUK_INTERNAL duk_hbuffer * duk_get_hbuffer(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_bool_t duk_is_null(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_bool_t duk_is_external_buffer(duk_context *ctx, duk_idx_t index)
#define DUK__CHECK_SPACE()
DUK_EXTERNAL duk_idx_t duk_get_top(duk_context *ctx)
DUK_LOCAL duk_bool_t duk__tag_check(duk_context *ctx, duk_idx_t index, duk_small_uint_t tag)
DUK_EXTERNAL void duk_copy(duk_context *ctx, duk_idx_t from_index, duk_idx_t to_index)
DUK_INTERNAL duk_hobject * duk_require_hobject_or_lfunc(duk_context *ctx, duk_idx_t index)
DUK_LOCAL duk_int_t duk__api_coerce_d2i(duk_context *ctx, duk_idx_t index, duk_bool_t require)
DUK_EXTERNAL duk_idx_t duk_push_error_object_stash(duk_context *ctx, duk_errcode_t err_code, const char *fmt,...)
DUK_INTERNAL void duk_push_tval(duk_context *ctx, duk_tval *tv)
DUK_INTERNAL void duk_to_object_class_string_top(duk_context *ctx)
DUK_LOCAL_DECL duk_heaphdr * duk__get_tagged_heaphdr_raw(duk_context *ctx, duk_idx_t index, duk_uint_t tag)
DUK_INTERNAL duk_hbufferobject * duk_push_bufferobject_raw(duk_context *ctx, duk_uint_t hobject_flags_and_class, duk_small_int_t prototype_bidx)
DUK_EXTERNAL void duk_push_uint(duk_context *ctx, duk_uint_t val)
DUK_EXTERNAL void * duk_get_buffer_data(duk_context *ctx, duk_idx_t index, duk_size_t *out_size)
DUK_INTERNAL void duk_push_hobject_class_string(duk_context *ctx, duk_hobject *h)
DUK_EXTERNAL void duk_to_null(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_bool_t duk_is_buffer(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_push_thread_stash(duk_context *ctx, duk_context *target_ctx)
DUK_EXTERNAL void * duk_get_heapptr(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_push_undefined(duk_context *ctx)
DUK_INTERNAL duk_hstring * duk_push_this_coercible_to_string(duk_context *ctx)
DUK_INTERNAL duk_hcompiledfunction * duk_get_hcompiledfunction(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_int32_t duk_to_int32(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_bool_t duk_is_array(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_uint32_t duk_to_uint32(duk_context *ctx, duk_idx_t index)
DUK_LOCAL void * duk__get_buffer_data_helper(duk_context *ctx, duk_idx_t index, duk_size_t *out_size, duk_bool_t throw_flag)
DUK_EXTERNAL const char * duk_push_sprintf(duk_context *ctx, const char *fmt,...)
DUK_EXTERNAL void duk_swap_top(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_bool_t duk_is_nan(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_uint_t duk_get_uint(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_push_number(duk_context *ctx, duk_double_t val)
DUK_EXTERNAL void duk_pop_n(duk_context *ctx, duk_idx_t count)
DUK_INTERNAL duk_tval * duk_require_tval(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_fatal(duk_context *ctx, duk_errcode_t err_code, const char *err_msg)
DUK_EXTERNAL void duk_require_valid_index(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_require_function(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_push_false(duk_context *ctx)
DUK_EXTERNAL void duk_push_current_thread(duk_context *ctx)
DUK_EXTERNAL void duk_push_global_stash(duk_context *ctx)
DUK_EXTERNAL void duk_error_raw(duk_context *ctx, duk_errcode_t err_code, const char *filename, duk_int_t line, const char *fmt,...)
DUK_EXTERNAL const char * duk_require_lstring(duk_context *ctx, duk_idx_t index, duk_size_t *out_len)
DUK_INTERNAL duk_idx_t duk_push_object_helper(duk_context *ctx, duk_uint_t hobject_flags_and_class, duk_small_int_t prototype_bidx)
DUK_INTERNAL duk_hthread * duk_get_hthread(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_bool_t duk_is_null_or_undefined(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL duk_idx_t duk_push_compiledfunction(duk_context *ctx)
DUK_INTERNAL duk_idx_t duk_push_object_internal(duk_context *ctx)
DUK_EXTERNAL void duk_push_global_object(duk_context *ctx)
DUK_EXTERNAL void duk_to_object(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL void duk_push_this_check_object_coercible(duk_context *ctx)
DUK_INTERNAL duk_int_t duk_to_int_clamped(duk_context *ctx, duk_idx_t index, duk_idx_t minval, duk_idx_t maxval)
DUK_EXTERNAL const char * duk_to_string(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL duk_tval * duk_get_borrowed_this_tval(duk_context *ctx)
DUK_EXTERNAL duk_uint16_t duk_to_uint16(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_pop(duk_context *ctx)
DUK_EXTERNAL duk_bool_t duk_strict_equals(duk_context *ctx, duk_idx_t index1, duk_idx_t index2)
DUK_INTERNAL duk_hobject * duk_get_hobject(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL void duk_push_hobject(duk_context *ctx, duk_hobject *h)
DUK_EXTERNAL duk_bool_t duk_check_stack(duk_context *ctx, duk_idx_t extra)
DUK_EXTERNAL duk_idx_t duk_push_array(duk_context *ctx)
DUK_EXTERNAL void * duk_to_buffer_raw(duk_context *ctx, duk_idx_t index, duk_size_t *out_size, duk_uint_t mode)
DUK_EXTERNAL void duk_push_nan(duk_context *ctx)
#define DUK__READABLE_STRING_MAXCHARS
DUK_EXTERNAL duk_c_function duk_require_c_function(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL void duk_push_hstring(duk_context *ctx, duk_hstring *h)
DUK_INTERNAL duk_hstring * duk_get_hstring(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_c_function duk_get_c_function(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_bool_t duk_check_stack_top(duk_context *ctx, duk_idx_t top)
DUK_INTERNAL duk_hobject * duk_push_this_coercible_to_object(duk_context *ctx)
DUK_EXTERNAL duk_bool_t duk_is_string(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL duk_hstring * duk_require_hstring(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL duk_hnativefunction * duk_require_hnativefunction(duk_context *ctx, duk_idx_t index)
DUK_LOCAL duk_bool_t duk__defaultvalue_coerce_attempt(duk_context *ctx, duk_idx_t index, duk_small_int_t func_stridx)
DUK_EXTERNAL duk_context * duk_get_context(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_uint_t duk_require_uint(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_int_t duk_require_int(duk_context *ctx, duk_idx_t index)
DUK_LOCAL duk_uint_t duk__api_coerce_d2ui(duk_context *ctx, duk_idx_t index, duk_bool_t require)
DUK_EXTERNAL const char * duk_require_string(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL void duk_error_va_raw(duk_context *ctx, duk_errcode_t err_code, const char *filename, duk_int_t line, const char *fmt, va_list ap)
DUK_INTERNAL const char * duk_push_string_tval_readable(duk_context *ctx, duk_tval *tv)
DUK_EXTERNAL void duk_require_undefined(duk_context *ctx, duk_idx_t index)
DUK_LOCAL void * duk__get_buffer_helper(duk_context *ctx, duk_idx_t index, duk_size_t *out_size, duk_bool_t throw_flag)
DUK_EXTERNAL duk_bool_t duk_is_c_function(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL void duk_push_hbuffer(duk_context *ctx, duk_hbuffer *h)
DUK_EXTERNAL duk_idx_t duk_push_heapptr(duk_context *ctx, void *ptr)
DUK_EXTERNAL duk_bool_t duk_is_ecmascript_function(duk_context *ctx, duk_idx_t index)
DUK_LOCAL duk_ret_t duk__safe_to_string_raw(duk_context *ctx)
DUK_INTERNAL duk_hobject * duk_get_hobject_with_class(duk_context *ctx, duk_idx_t index, duk_small_uint_t classnum)
DUK_EXTERNAL duk_context * duk_require_context(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_idx_t duk_push_error_object_raw(duk_context *ctx, duk_errcode_t err_code, const char *filename, duk_int_t line, const char *fmt,...)
DUK_EXTERNAL duk_int_t duk_to_int(duk_context *ctx, duk_idx_t index)
DUK_INTERNAL void duk_push_string_funcptr(duk_context *ctx, duk_uint8_t *ptr, duk_size_t sz)
DUK_INTERNAL duk_tval * duk_get_tval(duk_context *ctx, duk_idx_t index)
duk_hthread * curr_thread
duk_fatal_function fatal_func
duk_hobject * heap_object
duk_hobject * builtins[DUK_NUM_BUILTINS]
duk_size_t callstack_size
duk_tval * valstack_bottom