From: Igor Sysoev Date: Wed, 18 Nov 2015 12:31:25 +0000 (+0300) Subject: Style and small miscellaneous fixes. X-Git-Tag: 0.1.0~123 X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/postgres_fdw/static/gitweb.js?a=commitdiff_plain;h=c3f7470e2c0ee56671f1c1a9d0e83657ad175105;p=njs.git Style and small miscellaneous fixes. --- diff --git a/njs/njs_array.c b/njs/njs_array.c index 641d012c..2c65bea4 100644 --- a/njs/njs_array.c +++ b/njs/njs_array.c @@ -109,7 +109,7 @@ njs_ret_t njs_array_realloc(njs_vm_t *vm, njs_array_t *array, uint32_t prepend, uint32_t size) { - nxt_uint_t n; + nxt_uint_t n; njs_value_t *value; if (size != array->size) { @@ -215,14 +215,17 @@ njs_array_function(njs_vm_t *vm, njs_param_t *param) static const njs_object_prop_t njs_array_function_properties[] = { + /* Array.name == "Array". */ { njs_string("Array"), njs_string("name"), NJS_PROPERTY, 0, 0, 0, }, + /* Array.length == 1. */ { njs_value(NJS_NUMBER, 1, 1.0), njs_string("length"), NJS_PROPERTY, 0, 0, 0, }, + /* Array.prototype. */ { njs_getter(njs_object_prototype_create_prototype), njs_string("prototype"), NJS_NATIVE_GETTER, 0, 0, 0, }, @@ -605,7 +608,7 @@ njs_array_prototype_concat(njs_vm_t *vm, njs_param_t *param) { size_t length; uintptr_t nargs; - nxt_uint_t i; + nxt_uint_t i; njs_value_t *object, *args, *value; njs_array_t *array; @@ -737,8 +740,8 @@ njs_array_prototype_for_each(njs_vm_t *vm, njs_param_t *param) static njs_ret_t njs_array_prototype_some(njs_vm_t *vm, njs_param_t *param) { - nxt_int_t n; uintptr_t nargs; + nxt_int_t n; njs_param_t p; njs_array_t *array; njs_value_t *object, *args, *func, arguments[3]; @@ -803,8 +806,8 @@ njs_array_prototype_some(njs_vm_t *vm, njs_param_t *param) static njs_ret_t njs_array_prototype_every(njs_vm_t *vm, njs_param_t *param) { - nxt_int_t n; uintptr_t nargs; + nxt_int_t n; njs_param_t p; njs_array_t *array; njs_value_t *object, *args, *func, arguments[3]; diff --git a/njs/njs_disassembler.c b/njs/njs_disassembler.c index a2f125bf..c8764e0b 100644 --- a/njs/njs_disassembler.c +++ b/njs/njs_disassembler.c @@ -164,8 +164,8 @@ void njs_disassembler(u_char *start, u_char *end, nxt_str_t *text) { u_char *p; - nxt_uint_t n; - nxt_str_t *name; + nxt_uint_t n; + nxt_str_t *name; njs_vmcode_1addr_t *code1; njs_vmcode_2addr_t *code2; njs_vmcode_3addr_t *code3; @@ -173,7 +173,7 @@ njs_disassembler(u_char *start, u_char *end, nxt_str_t *text) njs_code_name_t *code_name; njs_vmcode_operation_t operation; - static nxt_str_t unknown = nxt_string("UNKOWN"); + static nxt_str_t unknown = nxt_string("UNKOWN"); (void) name; (void) code1; diff --git a/njs/njs_extern.c b/njs/njs_extern.c index 76d54d0f..5b1fa3b4 100644 --- a/njs/njs_extern.c +++ b/njs/njs_extern.c @@ -54,7 +54,7 @@ njs_add_external(nxt_lvlhsh_t *hash, nxt_mem_cache_pool_t *mcp, uintptr_t object njs_external_t *external, nxt_uint_t n) { nxt_int_t ret; - njs_extern_t *ext; + njs_extern_t *ext; nxt_lvlhsh_query_t lhq; do { diff --git a/njs/njs_function.c b/njs/njs_function.c index d9f1ad47..5cb1b00d 100644 --- a/njs/njs_function.c +++ b/njs/njs_function.c @@ -288,14 +288,17 @@ njs_function_call(njs_vm_t *vm, njs_function_t *func, njs_index_t retval) static const njs_object_prop_t njs_function_function_properties[] = { + /* Function.name == "Function". */ { njs_string("Function"), njs_string("name"), NJS_PROPERTY, 0, 0, 0, }, - { njs_value(NJS_NUMBER, 0, 0.0), + /* Function.length == 1. */ + { njs_value(NJS_NUMBER, 0, 1.0), njs_string("length"), NJS_PROPERTY, 0, 0, 0, }, + /* Function.prototype. */ { njs_getter(njs_object_prototype_create_prototype), njs_string("prototype"), NJS_NATIVE_GETTER, 0, 0, 0, }, diff --git a/njs/njs_generator.c b/njs/njs_generator.c index 62f095be..652116aa 100644 --- a/njs/njs_generator.c +++ b/njs/njs_generator.c @@ -294,7 +294,7 @@ njs_generate_if_statement(njs_vm_t *vm, njs_parser_t *parser, njs_parser_node_t *node) { u_char *start; - nxt_int_t ret; + nxt_int_t ret; njs_ret_t *label; njs_vmcode_jump_t *jump; njs_vmcode_cond_jump_t *cond_jump; @@ -1560,8 +1560,8 @@ static nxt_int_t njs_generate_function_call(njs_vm_t *vm, njs_parser_t *parser, njs_parser_node_t *node) { - nxt_int_t ret; uintptr_t nargs; + nxt_int_t ret; njs_index_t retval, index, name; njs_parser_node_t *arg; njs_vmcode_call_t *call; @@ -1648,8 +1648,8 @@ static nxt_int_t njs_generate_method_call(njs_vm_t *vm, njs_parser_t *parser, njs_parser_node_t *node) { - nxt_int_t ret; uintptr_t nargs; + nxt_int_t ret; njs_index_t retval, index; njs_parser_node_t *arg, *prop; njs_vmcode_call_t *call; diff --git a/njs/njs_lexer.c b/njs/njs_lexer.c index e5a190bd..05dcc1a6 100644 --- a/njs/njs_lexer.c +++ b/njs/njs_lexer.c @@ -31,8 +31,7 @@ struct njs_lexer_multi_s { static njs_token_t njs_lexer_next_token(njs_lexer_t *lexer); static njs_token_t njs_lexer_word(njs_lexer_t *lexer, u_char c); -static njs_token_t njs_lexer_string(njs_lexer_t *lexer, - u_char quote); +static njs_token_t njs_lexer_string(njs_lexer_t *lexer, u_char quote); static njs_token_t njs_lexer_number(njs_lexer_t *lexer); static njs_token_t njs_lexer_multi(njs_lexer_t *lexer, njs_token_t token, nxt_uint_t n, const njs_lexer_multi_t *multi); @@ -297,7 +296,7 @@ static njs_token_t njs_lexer_next_token(njs_lexer_t *lexer) { u_char c; - nxt_uint_t n; + nxt_uint_t n; njs_token_t token; const njs_lexer_multi_t *multi; @@ -586,8 +585,8 @@ njs_lexer_multi(njs_lexer_t *lexer, njs_token_t token, nxt_uint_t n, return multi->token; } - return njs_lexer_multi(lexer, multi->token, - multi->count, multi->next); + return njs_lexer_multi(lexer, multi->token, multi->count, + multi->next); } multi++; diff --git a/njs/njs_lexer_keyword.c b/njs/njs_lexer_keyword.c index ef6b3e22..db762fbe 100644 --- a/njs/njs_lexer_keyword.c +++ b/njs/njs_lexer_keyword.c @@ -20,7 +20,7 @@ typedef struct { - nxt_str_t name; + nxt_str_t name; njs_token_t token; double number; } njs_keyword_t; @@ -148,8 +148,8 @@ static const nxt_lvlhsh_proto_t njs_keyword_hash_proto nxt_int_t njs_lexer_keywords_init(nxt_mem_cache_pool_t *mcp, nxt_lvlhsh_t *hash) { - nxt_uint_t n; - nxt_lvlhsh_query_t lhq; + nxt_uint_t n; + nxt_lvlhsh_query_t lhq; const njs_keyword_t *keyword; keyword = njs_keywords; @@ -180,7 +180,7 @@ njs_lexer_keywords_init(nxt_mem_cache_pool_t *mcp, nxt_lvlhsh_t *hash) njs_token_t njs_lexer_keyword(njs_lexer_t *lexer) { - njs_keyword_t *keyword; + njs_keyword_t *keyword; nxt_lvlhsh_query_t lhq; lhq.key_hash = lexer->key_hash; diff --git a/njs/njs_nonrecursive_parser.c b/njs/njs_nonrecursive_parser.c index 2216312f..2568e779 100644 --- a/njs/njs_nonrecursive_parser.c +++ b/njs/njs_nonrecursive_parser.c @@ -254,7 +254,7 @@ njs_parser_statement_semicolon(njs_vm_t *vm, njs_parser_t *parser, static nxt_int_t njs_parser_test_token(njs_vm_t *vm, njs_parser_t *parser, void *data) { - njs_token_t token; + njs_token_t token; token = (njs_token_t) data; diff --git a/njs/njs_number.c b/njs/njs_number.c index 8fd60164..09a84323 100644 --- a/njs/njs_number.c +++ b/njs/njs_number.c @@ -199,14 +199,17 @@ njs_number_function(njs_vm_t *vm, njs_param_t *param) static const njs_object_prop_t njs_number_function_properties[] = { + /* Number.name == "Number". */ { njs_string("Number"), njs_string("name"), NJS_PROPERTY, 0, 0, 0, }, + /* Number.length == 1. */ { njs_value(NJS_NUMBER, 1, 1.0), njs_string("length"), NJS_PROPERTY, 0, 0, 0, }, + /* Number.prototype. */ { njs_getter(njs_object_prototype_create_prototype), njs_string("prototype"), NJS_NATIVE_GETTER, 0, 0, 0, }, diff --git a/njs/njs_object.c b/njs/njs_object.c index 800b757c..cd424dc1 100644 --- a/njs/njs_object.c +++ b/njs/njs_object.c @@ -262,8 +262,8 @@ njs_object_function(njs_vm_t *vm, njs_param_t *param) static njs_ret_t njs_object_create(njs_vm_t *vm, njs_param_t *param) { - njs_value_t *args; - njs_object_t *obj; + njs_value_t *args; + njs_object_t *obj; /* STUB: move to shared create to avoid threads locks. */ static nxt_lvlhsh_t njs_null_proto_shared_hash; @@ -332,7 +332,7 @@ njs_ret_t njs_object_prototype_create_prototype(njs_vm_t *vm, njs_value_t *value) { int32_t index; - nxt_int_t ret; + nxt_int_t ret; njs_object_t *prototype; njs_function_t *function; njs_object_prop_t *prop; @@ -383,14 +383,22 @@ njs_object_prototype_create_prototype(njs_vm_t *vm, njs_value_t *value) static const njs_object_prop_t njs_object_function_properties[] = { + /* Object.name == "name". */ { njs_string("Object"), njs_string("name"), NJS_PROPERTY, 0, 0, 0, }, + /* Object.length == 1. */ + { njs_value(NJS_NUMBER, 1, 1.0), + njs_string("length"), + NJS_PROPERTY, 0, 0, 0, }, + + /* Object.prototype. */ { njs_getter(njs_object_prototype_create_prototype), njs_string("prototype"), NJS_NATIVE_GETTER, 0, 0, 0, }, + /* Object.create(). */ { njs_native_function(njs_object_create, 0), njs_string("create"), NJS_METHOD, 0, 0, 0, }, diff --git a/njs/njs_object.h b/njs/njs_object.h index eb7f9e06..3483cd0a 100644 --- a/njs/njs_object.h +++ b/njs/njs_object.h @@ -34,7 +34,7 @@ typedef enum { NJS_NATIVE_GETTER, NJS_NATIVE_SETTER, NJS_WHITEOUT, -} njs_ojbect_property_type_t; +} njs_object_property_type_t; typedef struct { @@ -42,7 +42,7 @@ typedef struct { njs_value_t value; njs_value_t name; - njs_ojbect_property_type_t type:8; /* 3 bits */ + njs_object_property_type_t type:8; /* 3 bits */ uint8_t enumerable; /* 1 bit */ uint8_t writable; /* 1 bit */ uint8_t configurable; /* 1 bit */ diff --git a/njs/njs_parser.c b/njs/njs_parser.c index a3a48ec6..476af93f 100644 --- a/njs/njs_parser.c +++ b/njs/njs_parser.c @@ -83,6 +83,7 @@ njs_parser(njs_vm_t *vm, njs_parser_t *parser) for ( ;; ) { token = njs_parser_statement(vm, parser, token); + if (nxt_slow_path(token <= NJS_TOKEN_ILLEGAL)) { if (vm->exception == NULL) { diff --git a/njs/njs_parser.h b/njs/njs_parser.h index 2cfe2a17..0faa0589 100644 --- a/njs/njs_parser.h +++ b/njs/njs_parser.h @@ -240,9 +240,9 @@ struct njs_parser_s { /* Vector of njs_variable_t. */ nxt_array_t *arguments; - nxt_lvlhsh_t variables_hash; - nxt_lvlhsh_t values_hash; - nxt_lvlhsh_t functions_hash; + nxt_lvlhsh_t variables_hash; + nxt_lvlhsh_t values_hash; + nxt_lvlhsh_t functions_hash; nxt_array_t *index_cache; njs_index_t index[NJS_SCOPES - NJS_INDEX_CACHE]; diff --git a/njs/njs_parser_expression.c b/njs/njs_parser_expression.c index a8337f74..6d8252c0 100644 --- a/njs/njs_parser_expression.c +++ b/njs/njs_parser_expression.c @@ -21,21 +21,20 @@ typedef struct { - njs_token_t token; - njs_vmcode_operation_t operation; + njs_token_t token; + njs_vmcode_operation_t operation; } njs_parser_operation_t; -typedef struct njs_parser_expression_s - njs_parser_expression_t; +typedef struct njs_parser_expression_s njs_parser_expression_t; struct njs_parser_expression_s { - njs_token_t (*next)(njs_vm_t *, - njs_parser_t *, - const njs_parser_expression_t *, - njs_token_t); + njs_token_t (*next)(njs_vm_t *, + njs_parser_t *, + const njs_parser_expression_t *, + njs_token_t); const njs_parser_expression_t *expression; - nxt_uint_t count; + nxt_uint_t count; #if (NXT_SUNC) /* diff --git a/njs/njs_regexp.c b/njs/njs_regexp.c index 2c6e63b4..047a6264 100644 --- a/njs/njs_regexp.c +++ b/njs/njs_regexp.c @@ -270,8 +270,8 @@ njs_regexp_prototype_source(njs_vm_t *vm, njs_value_t *regexp) static njs_ret_t njs_regexp_prototype_test(njs_vm_t *vm, njs_param_t *param) { - nxt_uint_t n; njs_ret_t ret; + nxt_uint_t n; njs_value_t val; const njs_value_t *retval; njs_string_prop_t string; @@ -316,8 +316,8 @@ njs_ret_t njs_regexp_prototype_exec(njs_vm_t *vm, njs_param_t *param) { int *captures, ncaptures; - nxt_uint_t n, utf8; njs_ret_t ret; + nxt_uint_t n, utf8; njs_regexp_t *regexp; njs_string_prop_t string; njs_regexp_pattern_t *pattern; @@ -385,8 +385,8 @@ njs_regexp_exec_result(njs_vm_t *vm, njs_regexp_t *regexp, u_char *string, { u_char *start; int32_t size, length; - nxt_uint_t i, n; njs_ret_t ret; + nxt_uint_t i, n; njs_array_t *array; njs_object_prop_t *prop; nxt_lvlhsh_query_t lhq; @@ -483,14 +483,17 @@ njs_regexp_exec_result(njs_vm_t *vm, njs_regexp_t *regexp, u_char *string, static const njs_object_prop_t njs_regexp_function_properties[] = { + /* RegExp.name == "RegExp". */ { njs_string("RegExp"), njs_string("name"), NJS_PROPERTY, 0, 0, 0, }, + /* RegExp.length == 2. */ { njs_value(NJS_NUMBER, 1, 2.0), njs_string("length"), NJS_PROPERTY, 0, 0, 0, }, + /* RegExp.prototype. */ { njs_getter(njs_object_prototype_create_prototype), njs_string("prototype"), NJS_NATIVE_GETTER, 0, 0, 0, }, diff --git a/njs/njs_regexp_pattern.h b/njs/njs_regexp_pattern.h index 9ecded92..b9b438bb 100644 --- a/njs/njs_regexp_pattern.h +++ b/njs/njs_regexp_pattern.h @@ -11,20 +11,20 @@ struct njs_regexp_pattern_s { - pcre *code[2]; - pcre_extra *extra[2]; - u_char *source; + pcre *code[2]; + pcre_extra *extra[2]; + u_char *source; #if (NXT_64BIT) - uint32_t ncaptures; - uint8_t global; /* 1 bit */ - uint8_t ignore_case; /* 1 bit */ - uint8_t multiline; /* 1 bit */ + uint32_t ncaptures; + uint8_t global; /* 1 bit */ + uint8_t ignore_case; /* 1 bit */ + uint8_t multiline; /* 1 bit */ #else - uint16_t ncaptures; - uint8_t global; /* 1 bit */ - uint8_t ignore_case:1; - uint8_t multiline:1; + uint16_t ncaptures; + uint8_t global; /* 1 bit */ + uint8_t ignore_case:1; + uint8_t multiline:1; #endif }; diff --git a/njs/njs_shared.c b/njs/njs_shared.c index 6a929c1a..416e4371 100644 --- a/njs/njs_shared.c +++ b/njs/njs_shared.c @@ -124,7 +124,7 @@ njs_shared_objects_create(njs_vm_t *vm) * Object(), * Object.__proto__ -> Function_Prototype, * Object_Prototype.__proto__ -> null, - * the null value is handled by njs_object_prototype_get_prototype(), + * the null value is handled by njs_object_prototype_get_proto(), * * Array(), * Array.__proto__ -> Function_Prototype, diff --git a/njs/njs_string.c b/njs/njs_string.c index 6376f461..5f41fb74 100644 --- a/njs/njs_string.c +++ b/njs/njs_string.c @@ -24,8 +24,8 @@ #include -static nxt_noinline njs_ret_t njs_string_index_of(njs_vm_t *vm, njs_value_t *src, - njs_value_t *search_string, size_t index); +static nxt_noinline ssize_t njs_string_index_of(njs_vm_t *vm, + njs_value_t *src, njs_value_t *search_string, size_t index); njs_ret_t @@ -147,10 +147,9 @@ njs_string_copy(njs_value_t *dst, njs_value_t *src) nxt_noinline njs_ret_t njs_string_validate(njs_vm_t *vm, njs_string_prop_t *string, njs_value_t *value) { - u_char *start; - size_t new_size; - ssize_t size; - njs_ret_t length; + u_char *start; + size_t new_size; + ssize_t size, length; size = value->short_string.size; @@ -276,14 +275,17 @@ njs_string_ctor_function(njs_vm_t *vm, njs_param_t *param) static const njs_object_prop_t njs_string_function_properties[] = { + /* String.name == "String". */ { njs_string("String"), njs_string("name"), NJS_PROPERTY, 0, 0, 0, }, + /* String.length == 1. */ { njs_value(NJS_NUMBER, 1, 1.0), njs_string("length"), NJS_PROPERTY, 0, 0, 0, }, + /* String.prototype. */ { njs_getter(njs_object_prototype_create_prototype), njs_string("prototype"), NJS_NATIVE_GETTER, 0, 0, 0, }, @@ -391,8 +393,7 @@ njs_string_prototype_utf8(njs_vm_t *vm, njs_value_t *value) } if ((size_t) length == string.size) { - return njs_string_create(vm, &vm->retval, string.start, - length, length); + return njs_string_create(vm, &vm->retval, string.start, length, length); } /* length != string.size */ @@ -477,8 +478,8 @@ njs_string_eq(const njs_value_t *v1, const njs_value_t *v2) nxt_int_t njs_string_cmp(const njs_value_t *v1, const njs_value_t *v2) { - nxt_int_t ret; size_t size, size1, size2; + nxt_int_t ret; const u_char *start1, *start2; size1 = v1->short_string.size; @@ -519,8 +520,8 @@ njs_string_prototype_concat(njs_vm_t *vm, njs_param_t *param) u_char *p, *start; size_t size, length, mask; uintptr_t nargs; - nxt_uint_t i; njs_ret_t ret; + nxt_uint_t i; njs_value_t *object, *args, *values; njs_string_prop_t string; @@ -820,9 +821,8 @@ static njs_ret_t njs_string_prototype_char_code_at(njs_vm_t *vm, njs_param_t *param) { double num; - ssize_t index; + ssize_t index, length; uint32_t code; - njs_ret_t length; const u_char *start, *end; njs_string_prop_t string; @@ -863,9 +863,8 @@ done: static njs_ret_t njs_string_prototype_index_of(njs_vm_t *vm, njs_param_t *param) { - ssize_t start; + ssize_t start, index; uintptr_t nargs; - njs_ret_t index; njs_value_t *args; index = -1; @@ -895,8 +894,8 @@ njs_string_prototype_index_of(njs_vm_t *vm, njs_param_t *param) static njs_ret_t njs_string_prototype_last_index_of(njs_vm_t *vm, njs_param_t *param) { + ssize_t ret, index, last; uintptr_t nargs; - njs_ret_t ret, index, last; njs_value_t *args; index = -1; @@ -933,11 +932,11 @@ njs_string_prototype_last_index_of(njs_vm_t *vm, njs_param_t *param) } -static nxt_noinline njs_ret_t +static nxt_noinline ssize_t njs_string_index_of(njs_vm_t *vm, njs_value_t *src, njs_value_t *search_string, size_t index) { - njs_ret_t length; + size_t length; const u_char *p, *end; njs_string_prop_t string, search; @@ -945,12 +944,12 @@ njs_string_index_of(njs_vm_t *vm, njs_value_t *src, njs_value_t *search_string, length = njs_string_prop(&string, src); - if (index < (size_t) length) { + if (index < length) { p = string.start; end = p + string.size; - if (string.size == (size_t) length) { + if (string.size == length) { /* Byte or ASCII string. */ p += index; @@ -1048,9 +1047,9 @@ njs_string_index(njs_string_prop_t *string, uint32_t offset) static njs_ret_t njs_string_prototype_search(njs_vm_t *vm, njs_param_t *param) { - nxt_int_t index; - nxt_uint_t n; - njs_ret_t ret; + int ret; + nxt_int_t index; + nxt_uint_t n; njs_string_prop_t string; njs_regexp_pattern_t *pattern; int captures[3]; @@ -1101,8 +1100,8 @@ njs_string_prototype_match(njs_vm_t *vm, njs_param_t *param) { u_char *start; int32_t size, length; - nxt_uint_t n, utf8; njs_ret_t ret; + nxt_uint_t n, utf8; njs_value_t *args; njs_array_t *array; njs_regexp_t *regexp; @@ -1349,7 +1348,7 @@ njs_string_to_number(njs_value_t *value) { double num; size_t size; - nxt_bool_t minus; + nxt_bool_t minus; const u_char *p, *end; size = value->short_string.size; diff --git a/njs/njs_variable.c b/njs/njs_variable.c index d0cb758b..62e51f02 100644 --- a/njs/njs_variable.c +++ b/njs/njs_variable.c @@ -57,11 +57,11 @@ static const nxt_lvlhsh_proto_t njs_variables_hash_proto njs_variable_t * njs_parser_variable(njs_vm_t *vm, njs_parser_t *parser, nxt_uint_t *level) { - nxt_int_t ret; - nxt_uint_t n; - njs_parser_t *scope; - njs_variable_t *var; - nxt_lvlhsh_query_t lhq; + nxt_int_t ret; + nxt_uint_t n; + njs_parser_t *scope; + njs_variable_t *var; + nxt_lvlhsh_query_t lhq; level = 0; diff --git a/njs/njs_vm.c b/njs/njs_vm.c index 0fb21639..a9b2f7dc 100644 --- a/njs/njs_vm.c +++ b/njs/njs_vm.c @@ -152,7 +152,7 @@ njs_vmcode_interpreter(njs_vm_t *vm) vmcode = (njs_vmcode_generic_t *) vm->current; /* - * The first operand index is passed as the value2 to + * The first operand is passed as is in value2 to * njs_vmcode_jump(), * njs_vmcode_if_true_jump(), * njs_vmcode_if_false_jump(), @@ -578,8 +578,8 @@ njs_ret_t njs_vmcode_property_set(njs_vm_t *vm, njs_value_t *object, njs_value_t *property) { - nxt_str_t s; uintptr_t data; + nxt_str_t s; njs_ret_t ret; njs_value_t *p, *value; njs_extern_t *ext; @@ -1089,8 +1089,8 @@ njs_vmcode_property_each_start(njs_vm_t *vm, njs_value_t *object, njs_ret_t njs_vmcode_property_each(njs_vm_t *vm, njs_value_t *object, njs_value_t *each) { - nxt_uint_t n; njs_ret_t ret; + nxt_uint_t n; njs_array_t *array; njs_extern_t *ext; njs_object_prop_t *prop; @@ -1157,10 +1157,10 @@ njs_vmcode_instance_of(njs_vm_t *vm, njs_value_t *object, njs_value_t *constructor) { nxt_int_t ret; - njs_value_t *value; - njs_object_t *prototype, *proto; - njs_object_prop_t *prop; - const njs_value_t *retval; + njs_value_t *value; + njs_object_t *prototype, *proto; + njs_object_prop_t *prop; + const njs_value_t *retval; nxt_lvlhsh_query_t lhq; /* TODO: test constructor is function or native: TypeError. */ @@ -2444,9 +2444,9 @@ njs_vmcode_to_string(njs_vm_t *vm, njs_value_t *invld, njs_value_t *narg) /* - * A hint value is 0 for numbers and 1 for strings. The value chooses method - * calls order specified by ECMAScript 5.1: "valueOf", "toString" for numbers - * and "toString", "valueOf" for strings. + * A hint value is 0 for numbers and 1 for strings. The value chooses + * method calls order specified by ECMAScript 5.1: "valueOf", "toString" + * for numbers and "toString", "valueOf" for strings. */ nxt_noinline njs_ret_t diff --git a/njs/njs_vm.h b/njs/njs_vm.h index b7262f7e..28d3aed9 100644 --- a/njs/njs_vm.h +++ b/njs/njs_vm.h @@ -92,7 +92,7 @@ union njs_value_s { * and the data.u.string field points to a long string. * * The number of the string types is limited to 2 types to minimize - * overhead of processing string fields. It also is possible to add + * overhead of processing string fields. It is also possible to add * strings with size from 14 to 254 which size and length are stored in * the string_size and string_length byte wide fields. This will lessen * the maximum size of short string to 13. @@ -586,6 +586,7 @@ typedef enum { NJS_SCOPE_PARENT_CLOSURE, } njs_scope_t; + #define NJS_SCOPES (NJS_SCOPE_PARENT_CLOSURE + 1) #define NJS_SCOPE_SHIFT 4 diff --git a/njs/njscript.c b/njs/njscript.c index e3eed18d..efaa5cb3 100644 --- a/njs/njscript.c +++ b/njs/njscript.c @@ -149,10 +149,10 @@ njs_vm_destroy(njs_vm_t *vm) nxt_int_t njs_vm_compile(njs_vm_t *vm, u_char **start, u_char *end) { - nxt_int_t ret; - nxt_lvlhsh_t keywords_hash; + nxt_int_t ret; njs_lexer_t *lexer; njs_parser_t *parser; + nxt_lvlhsh_t keywords_hash; njs_parser_node_t *node; parser = nxt_mem_cache_zalloc(vm->mem_cache_pool, sizeof(njs_parser_t)); diff --git a/njs/test/njs_unit_test.c b/njs/test/njs_unit_test.c index 8fc1f918..7791ca9b 100644 --- a/njs/test/njs_unit_test.c +++ b/njs/test/njs_unit_test.c @@ -25,9 +25,6 @@ typedef struct { static njs_unit_test_t njs_test[] = { - { nxt_string("0 == '000'"), - nxt_string("true") }, - { nxt_string("999999999999999999999"), nxt_string("1e+21") }, @@ -421,7 +418,7 @@ static njs_unit_test_t njs_test[] = { nxt_string("({}) == false"), nxt_string("false") }, - { nxt_string("var a = { valueOf: function() { return 5 } }; a == 5"), + { nxt_string("var a = { valueOf: function() { return 5 } }; a == 5"), nxt_string("true") }, { nxt_string("var a = { valueOf: function() { return '5' } }; a == 5"), @@ -641,13 +638,13 @@ static njs_unit_test_t njs_test[] = { nxt_string("null < ({})"), nxt_string("false") }, - { nxt_string("var a = { valueOf: function() { return 1 } }; null < a"), + { nxt_string("var a = { valueOf: function() { return 1 } } null < a"), nxt_string("true") }, - { nxt_string("var a = { valueOf: function() { return 'null' } }; null < a"), + { nxt_string("var a = { valueOf: function() { return 'null' } } null < a"), nxt_string("false") }, - { nxt_string("var a = { valueOf: function() { return '1' } }; null < a"), + { nxt_string("var a = { valueOf: function() { return '1' } } null < a"), nxt_string("true") }, /**/ @@ -846,7 +843,7 @@ static njs_unit_test_t njs_test[] = { nxt_string("var a = { valueOf: function() { return [1] } }; ++a"), nxt_string("NaN") }, - { nxt_string("var a = { valueOf: function() { return {} } }; ++a"), + { nxt_string("var a = { valueOf: function() { return {} } }; ++a"), nxt_string("NaN") }, /**/ @@ -872,7 +869,7 @@ static njs_unit_test_t njs_test[] = { nxt_string("var a = { valueOf: function() { return [1] } } a = ++a"), nxt_string("NaN") }, - { nxt_string("var a = { valueOf: function() { return {} } } a = ++a"), + { nxt_string("var a = { valueOf: function() { return {} } } a = ++a"), nxt_string("NaN") }, /**/ @@ -919,13 +916,13 @@ static njs_unit_test_t njs_test[] = { nxt_string("var a = {}; a++"), nxt_string("NaN") }, - { nxt_string("var a = { valueOf: function() { return 1 } } a++"), + { nxt_string("var a = { valueOf: function() { return 1 } } a++"), nxt_string("1") }, - { nxt_string("var a = { valueOf: function() { return '1' } } a++"), + { nxt_string("var a = { valueOf: function() { return '1' } } a++"), nxt_string("1") }, - { nxt_string("var a = { valueOf: function() { return [1] } } a++"), + { nxt_string("var a = { valueOf: function() { return [1] } } a++"), nxt_string("NaN") }, { nxt_string("var a = { valueOf: function() { return {} } } a++"), @@ -954,7 +951,7 @@ static njs_unit_test_t njs_test[] = { nxt_string("var a = { valueOf: function() { return [1] } } a = a++"), nxt_string("NaN") }, - { nxt_string("var a = { valueOf: function() { return {} } } a = a++"), + { nxt_string("var a = { valueOf: function() { return {} } } a = a++"), nxt_string("NaN") }, /**/ @@ -1083,13 +1080,13 @@ static njs_unit_test_t njs_test[] = { nxt_string("var a = {}; a--"), nxt_string("NaN") }, - { nxt_string("var a = { valueOf: function() { return 1 } } a--"), + { nxt_string("var a = { valueOf: function() { return 1 } } a--"), nxt_string("1") }, - { nxt_string("var a = { valueOf: function() { return '1' } } a--"), + { nxt_string("var a = { valueOf: function() { return '1' } } a--"), nxt_string("1") }, - { nxt_string("var a = { valueOf: function() { return [1] } } a--"), + { nxt_string("var a = { valueOf: function() { return [1] } } a--"), nxt_string("NaN") }, { nxt_string("var a = { valueOf: function() { return {} } } a--"), @@ -1118,7 +1115,7 @@ static njs_unit_test_t njs_test[] = { nxt_string("var a = { valueOf: function() { return [1] } } a = a--"), nxt_string("NaN") }, - { nxt_string("var a = { valueOf: function() { return {} } } a = a--"), + { nxt_string("var a = { valueOf: function() { return {} } } a = a--"), nxt_string("NaN") }, /**/ @@ -2489,7 +2486,7 @@ static njs_unit_test_t njs_test[] = nxt_string("Function") }, { nxt_string("Function.length"), - nxt_string("0") }, + nxt_string("1") }, { nxt_string("Function.prototype.constructor === Function"), nxt_string("true") },