]> git.kaiwu.me - njs.git/commitdiff
Fixed attribute initialization for external properties.
authorDmitry Volyntsev <xeioex@nginx.com>
Sat, 22 Jun 2024 02:14:35 +0000 (19:14 -0700)
committerDmitry Volyntsev <xeioexception@gmail.com>
Tue, 2 Jul 2024 02:31:46 +0000 (19:31 -0700)
src/njs_extern.c
src/test/njs_unit_test.c

index df51f9b75859f0a8a77ad5397831451a6f5b9a07..9ec1c1c98f5ac6fc47cb4160229be00bddf96e33 100644 (file)
@@ -236,11 +236,9 @@ njs_external_prop_handler(njs_vm_t *vm, njs_object_prop_t *self,
         return NJS_ERROR;
     }
 
-    if (slots != NULL) {
-        prop->writable = slots->writable;
-        prop->configurable = slots->configurable;
-        prop->enumerable = slots->enumerable;
-    }
+    prop->writable = self->writable;
+    prop->configurable = self->configurable;
+    prop->enumerable = self->enumerable;
 
     lhq.value = prop;
     njs_string_get(&self->name, &lhq.key);
index 88f8083ec14a30f7f3c95240ff22270172170f4e..d78c5b713dd4682471456905cb4d1c2dc46d348c 100644 (file)
@@ -21819,6 +21819,11 @@ static njs_unit_test_t  njs_webcrypto_test[] =
     { njs_str("let buf = new Uint32Array(4);"
               "buf === crypto.getRandomValues(buf)"),
       njs_str("true") },
+
+    { njs_str("crypto.subtle;"
+              "var d = Object.getOwnPropertyDescriptor(crypto, 'subtle');"
+              "d.enumerable && !d.configurable && d.writable"),
+      njs_str("true") },
 };