From 1fa88f43bb8f3b62a42181fc6f202bd129eed95a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=93=8D=E9=A9=AC?= Date: Tue, 20 Jun 2017 12:39:36 +0800 Subject: [PATCH] utils.h: check optional parameter. --- fibjs/include/utils.h | 78 +++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/fibjs/include/utils.h b/fibjs/include/utils.h index 775e2f09a2..ac53c39b68 100644 --- a/fibjs/include/utils.h +++ b/fibjs/include/utils.h @@ -198,47 +198,47 @@ typedef int32_t result_t; do { \ do { -#define 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 > 0 && argc > (c) && 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_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) && 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(); \ - while (argc > 0 && argc > (c + 1) && args[argc - 1]->IsUndefined()) \ - argc--; \ - v8::Local cb; \ - if (argc > 0 && args[argc - 1]->IsFunction()) \ - cb = v8::Local::Cast(args[--argc]); \ - while (argc > 0 && argc > (c) && 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(); \ + while (argc > (o + 1) && args[argc - 1]->IsUndefined()) \ + argc--; \ + v8::Local cb; \ + if (argc > 0 && args[argc - 1]->IsFunction()) \ + cb = v8::Local::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 METHOD_ENTER() \