}
-nxt_noinline njs_ret_t
-njs_function_apply(njs_vm_t *vm, njs_function_t *function, njs_value_t *args,
- nxt_uint_t nargs, njs_index_t retval)
-{
- njs_ret_t ret;
- njs_continuation_t *cont;
-
- if (function->native) {
- ret = njs_function_native_frame(vm, function, &args[0], &args[1],
- nargs - 1, NJS_CONTINUATION_SIZE, 0);
- if (ret != NJS_OK) {
- return ret;
- }
-
- cont = njs_vm_continuation(vm);
-
- cont->function = function->u.native;
- cont->args_types = function->args_types;
- cont->retval = retval;
-
- cont->return_address = vm->current;
- vm->current = (u_char *) njs_continuation_nexus;
-
- return NJS_APPLIED;
- }
-
- ret = njs_function_frame(vm, function, &args[0], &args[1], nargs - 1, 0);
-
- if (nxt_fast_path(ret == NXT_OK)) {
- return njs_function_call(vm, retval, 0);
- }
-
- return ret;
-}
-
-
nxt_noinline njs_ret_t
njs_function_call(njs_vm_t *vm, njs_index_t retval, size_t advance)
{
njs_ret_t
-njs_function_activate(njs_vm_t *vm, njs_function_t *function, njs_value_t *this,
- const njs_value_t *args, nxt_uint_t nargs, njs_index_t retval,
- size_t advance)
+njs_function_activate(njs_vm_t *vm, njs_function_t *function,
+ const njs_value_t *this, const njs_value_t *args, nxt_uint_t nargs,
+ njs_index_t retval, size_t advance)
{
njs_ret_t ret;
njs_continuation_t *cont;
njs_value_t *value);
njs_ret_t njs_function_constructor(njs_vm_t *vm, njs_value_t *args,
nxt_uint_t nargs, njs_index_t unused);
-njs_ret_t njs_function_apply(njs_vm_t *vm, njs_function_t *function,
- njs_value_t *args, nxt_uint_t nargs, njs_index_t retval);
njs_ret_t njs_function_native_frame(njs_vm_t *vm, njs_function_t *function,
const njs_value_t *this, const njs_value_t *args, nxt_uint_t nargs,
size_t reserve, nxt_bool_t ctor);
const njs_value_t *this, const njs_value_t *args, nxt_uint_t nargs,
nxt_bool_t ctor);
njs_ret_t njs_function_activate(njs_vm_t *vm, njs_function_t *function,
- njs_value_t *this, const njs_value_t *args, nxt_uint_t nargs,
+ const njs_value_t *this, const njs_value_t *args, nxt_uint_t nargs,
njs_index_t retval, size_t advance);
njs_ret_t njs_function_call(njs_vm_t *vm, njs_index_t retval, size_t advance);
njs_ret_t njs_function_native_call(njs_vm_t *vm, njs_function_native_t native,
void njs_function_frame_free(njs_vm_t *vm, njs_native_frame_t *frame);
+nxt_inline njs_ret_t
+njs_function_apply(njs_vm_t *vm, njs_function_t *function,
+ const njs_value_t *args, nxt_uint_t nargs, njs_index_t retval)
+{
+ return njs_function_activate(vm, function, &args[0], &args[1], nargs - 1,
+ retval, 0);
+}
+
+
nxt_inline njs_native_frame_t *
njs_function_previous_frame(njs_native_frame_t *frame)
{