Welcome! Log In Create A New Profile

Advanced

[njs] Fixed string object creation using Object() constructor.

Dmitry Volyntsev
April 25, 2019 08:20AM
details: https://hg.nginx.org/njs/rev/e104c8c583c2
branches:
changeset: 925:e104c8c583c2
user: Dmitry Volyntsev <xeioex@nginx.com>
date: Thu Apr 25 15:19:36 2019 +0300
description:
Fixed string object creation using Object() constructor.

diffstat:

njs/njs_object.c | 9 ++++++++-
njs/njs_string.c | 2 --
njs/test/njs_unit_test.c | 3 +++
3 files changed, 11 insertions(+), 3 deletions(-)

diffs (44 lines):

diff -r cbb1817c5a39 -r e104c8c583c2 njs/njs_object.c
--- a/njs/njs_object.c Wed Apr 24 19:04:23 2019 +0300
+++ b/njs/njs_object.c Thu Apr 25 15:19:36 2019 +0300
@@ -107,7 +107,14 @@ njs_object_value_alloc(njs_vm_t *vm, con

if (nxt_fast_path(ov != NULL)) {
nxt_lvlhsh_init(&ov->object.hash);
- nxt_lvlhsh_init(&ov->object.shared_hash);
+
+ if (type == NJS_STRING) {
+ ov->object.shared_hash = vm->shared->string_instance_hash;
+
+ } else {
+ nxt_lvlhsh_init(&ov->object.shared_hash);
+ }
+
ov->object.type = njs_object_value_type(type);
ov->object.shared = 0;
ov->object.extensible = 1;
diff -r cbb1817c5a39 -r e104c8c583c2 njs/njs_string.c
--- a/njs/njs_string.c Wed Apr 24 19:04:23 2019 +0300
+++ b/njs/njs_string.c Thu Apr 25 15:19:36 2019 +0300
@@ -555,8 +555,6 @@ njs_string_constructor(njs_vm_t *vm, njs
return NXT_ERROR;
}

- object->shared_hash = vm->shared->string_instance_hash;
-
vm->retval.data.u.object = object;
vm->retval.type = NJS_OBJECT_STRING;
vm->retval.data.truth = 1;
diff -r cbb1817c5a39 -r e104c8c583c2 njs/test/njs_unit_test.c
--- a/njs/test/njs_unit_test.c Wed Apr 24 19:04:23 2019 +0300
+++ b/njs/test/njs_unit_test.c Thu Apr 25 15:19:36 2019 +0300
@@ -8437,6 +8437,9 @@ static njs_unit_test_t njs_test[] =
{ nxt_string("new String(123)"),
nxt_string("123") },

+ { nxt_string("Object('123').length"),
+ nxt_string("3") },
+
{ nxt_string("new String(123).length"),
nxt_string("3") },

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] Fixed string object creation using Object() constructor.

Dmitry Volyntsev 449 April 25, 2019 08:20AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 149
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready