From: Igor Sysoev Date: Wed, 10 Aug 2016 08:57:56 +0000 (+0300) Subject: Array.isArray() function. X-Git-Tag: 0.1.1~9 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=7a4cbdbd904292beb6e7f94a10f604f70216983d;p=njs.git Array.isArray() function. --- diff --git a/njs/njs_array.c b/njs/njs_array.c index 5cc72d37..34f6f771 100644 --- a/njs/njs_array.c +++ b/njs/njs_array.c @@ -257,6 +257,25 @@ njs_array_constructor(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs, } +static njs_ret_t +njs_array_is_array(njs_vm_t *vm, njs_value_t *args, + nxt_uint_t nargs, njs_index_t unused) +{ + const njs_value_t *value; + + if (nargs > 1 && njs_is_array(&args[1])) { + value = &njs_string_true; + + } else { + value = &njs_string_false; + } + + vm->retval = *value; + + return NXT_OK; +} + + static const njs_object_prop_t njs_array_constructor_properties[] = { /* Array.name == "Array". */ @@ -279,6 +298,13 @@ static const njs_object_prop_t njs_array_constructor_properties[] = .name = njs_string("prototype"), .value = njs_native_getter(njs_object_prototype_create), }, + + /* Array.isArray(). */ + { + .type = NJS_METHOD, + .name = njs_string("isArray"), + .value = njs_native_function(njs_array_is_array, 0, 0), + }, }; diff --git a/njs/test/njs_unit_test.c b/njs/test/njs_unit_test.c index 114f128f..cbe8d4f6 100644 --- a/njs/test/njs_unit_test.c +++ b/njs/test/njs_unit_test.c @@ -2215,6 +2215,15 @@ static njs_unit_test_t njs_test[] = /**/ + { nxt_string("Array.isArray()"), + nxt_string("false") }, + + { nxt_string("Array.isArray(1)"), + nxt_string("false") }, + + { nxt_string("Array.isArray([])"), + nxt_string("true") }, + { nxt_string("a = [1,2,3]; a.concat(4, [5, 6, 7], 8)"), nxt_string("1,2,3,4,5,6,7,8") },