Skip to content

Commit

Permalink
core, bugfix: do not skip undefined args in ...args mode.
Browse files Browse the repository at this point in the history
  • Loading branch information
xicilion committed Aug 3, 2017
1 parent 886fd8b commit 4175472
Showing 1 changed file with 26 additions and 26 deletions.
52 changes: 26 additions & 26 deletions fibjs/include/utils.h
Expand Up @@ -206,6 +206,7 @@ typedef int32_t result_t;
do { \
hr = 0; \
int32_t argc = args.Length(); \
int32_t argc1 = argc; \
while (argc > (o) && args[argc - 1]->IsUndefined()) \
argc--; \
if ((c) >= 0 && argc > (c)) { \
Expand All @@ -217,28 +218,27 @@ typedef int32_t result_t;
break; \
}

#define ASYNC_METHOD_OVER(c, o) \
} \
while (0) \
; \
if (hr > CALL_E_MIN_ARG && hr < CALL_E_MAX) \
do { \
hr = 0; \
int32_t argc = args.Length(); \
while (argc > (o + 1) && args[argc - 1]->IsUndefined()) \
argc--; \
v8::Local<v8::Function> cb; \
if (argc > 0 && args[argc - 1]->IsFunction()) \
cb = v8::Local<v8::Function>::Cast(args[--argc]); \
while (argc > (o) && args[argc - 1]->IsUndefined()) \
argc--; \
if ((c) >= 0 && argc > (c)) { \
hr = CALL_E_BADPARAMCOUNT; \
break; \
} \
if ((o) > 0 && argc < (o)) { \
hr = CALL_E_PARAMNOTOPTIONAL; \
break; \
#define ASYNC_METHOD_OVER(c, o) \
} \
while (0) \
; \
if (hr > CALL_E_MIN_ARG && hr < CALL_E_MAX) \
do { \
hr = 0; \
int32_t argc = args.Length(); \
v8::Local<v8::Function> cb; \
if (argc > 0 && args[argc - 1]->IsFunction()) \
cb = v8::Local<v8::Function>::Cast(args[--argc]); \
int32_t argc1 = argc; \
while (argc > (o) && args[argc - 1]->IsUndefined()) \
argc--; \
if ((c) >= 0 && argc > (c)) { \
hr = CALL_E_BADPARAMCOUNT; \
break; \
} \
if ((o) > 0 && argc < (o)) { \
hr = CALL_E_PARAMNOTOPTIONAL; \
break; \
}

#define METHOD_ENTER() \
Expand Down Expand Up @@ -351,10 +351,10 @@ typedef int32_t result_t;
break; \
}

#define ARG_LIST(n) \
v8::Local<v8::Array> v##n; \
hr = GetArgumentList(isolate, args, v##n, n, argc); \
if (hr < 0) \
#define ARG_LIST(n) \
v8::Local<v8::Array> v##n; \
hr = GetArgumentList(isolate, args, v##n, n, argc1); \
if (hr < 0) \
break;

#define DECLARE_CLASSINFO(c) \
Expand Down

0 comments on commit 4175472

Please sign in to comment.