From d457c9545e7e71ebb5c0479eb16b9d33175855e2 Mon Sep 17 00:00:00 2001 From: "Artem S. Povalyukhin" Date: Fri, 24 Dec 2021 10:00:15 +0300 Subject: [PATCH] Added missing element in typeof table for DataView() type. Previously, typeof operation for DataView object resulted in out of bounds array accessing. This fixes #450 issue on Github. --- src/njs_vmcode.c | 1 + src/test/njs_unit_test.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/njs_vmcode.c b/src/njs_vmcode.c index 5facef58..75911255 100644 --- a/src/njs_vmcode.c +++ b/src/njs_vmcode.c @@ -1516,6 +1516,7 @@ njs_vmcode_typeof(njs_vm_t *vm, njs_value_t *value, njs_value_t *invld) &njs_string_object, &njs_string_object, &njs_string_object, + &njs_string_object, }; vm->retval = *types[value->type]; diff --git a/src/test/njs_unit_test.c b/src/test/njs_unit_test.c index c8440d12..7470b4bd 100644 --- a/src/test/njs_unit_test.c +++ b/src/test/njs_unit_test.c @@ -6390,6 +6390,9 @@ static njs_unit_test_t njs_test[] = { njs_str("(new DataView(new ArrayBuffer(3)))"), njs_str("[object DataView]") }, + { njs_str("var x = new ArrayBuffer(3); [typeof x, typeof new DataView(x)]"), + njs_str("object,object") }, + { njs_str("(new DataView(new ArrayBuffer(3))).buffer"), njs_str("[object ArrayBuffer]") }, -- 2.47.3