]> git.kaiwu.me - njs.git/commitdiff
Simplified working with global value.
authorDmitry Volyntsev <xeioex@nginx.com>
Wed, 28 Feb 2024 07:24:55 +0000 (23:24 -0800)
committerDmitry Volyntsev <xeioex@nginx.com>
Wed, 28 Feb 2024 07:24:55 +0000 (23:24 -0800)
src/njs_builtin.c
src/njs_function.c
src/njs_vm.c

index 38ffe54154284201e974336c722db354027488b8..b9514a0f7df262c21771cd6509c8ff8ca9894025 100644 (file)
@@ -258,8 +258,6 @@ njs_builtin_objects_create(njs_vm_t *vm)
     vm->global_object = shared->objects[0];
     vm->global_object.shared = 0;
 
-    njs_set_object(&vm->global_value, &vm->global_object);
-
     string_object = &shared->string_object;
     njs_lvlhsh_init(&string_object->hash);
     string_object->shared_hash = shared->string_instance_hash;
@@ -442,7 +440,7 @@ njs_builtin_completions(njs_vm_t *vm)
     ctx.type = NJS_BUILTIN_TRAVERSE_KEYS;
     njs_lvlhsh_init(&ctx.keys);
 
-    ret = njs_object_traverse(vm, &vm->global_object, &ctx,
+    ret = njs_object_traverse(vm, njs_object(&vm->global_value), &ctx,
                               njs_builtin_traverse);
     if (njs_slow_path(ret != NJS_OK)) {
         return NULL;
@@ -753,7 +751,7 @@ njs_builtin_match_native_function(njs_vm_t *vm, njs_function_t *function,
 
     ctx.match = njs_str_value("");
 
-    ret = njs_object_traverse(vm, &vm->global_object, &ctx,
+    ret = njs_object_traverse(vm, njs_object(&vm->global_value), &ctx,
                               njs_builtin_traverse);
 
     if (ret == NJS_DONE) {
index 1413ed845cf55c052cb2d397bf7c44c0530eb9ee..5e824aee9202eb93ac3680118c67822550277822 100644 (file)
@@ -435,7 +435,7 @@ njs_function_lambda_frame(njs_vm_t *vm, njs_function_t *function,
     if (njs_slow_path(function->global_this
                       && njs_is_null_or_undefined(this)))
     {
-        njs_set_object(native_frame->local[0], &vm->global_object);
+        njs_value_assign(native_frame->local[0], &vm->global_value);
     }
 
     /* Copy arguments. */
index fa8a19ba69467154bed60735fa9b13dc7e63f802..cc57236f60c0dab00f3d023a63b385e65ce8d7b1 100644 (file)
@@ -425,8 +425,6 @@ njs_vm_clone(njs_vm_t *vm, njs_external_ptr_t external)
 
     nvm->levels[NJS_LEVEL_GLOBAL] = global;
 
-    njs_set_object(&nvm->global_value, &nvm->global_object);
-
     /* globalThis and this */
     njs_scope_value_set(nvm, njs_scope_global_this_index(), &nvm->global_value);
 
@@ -826,7 +824,7 @@ njs_vm_value(njs_vm_t *vm, const njs_str_t *path, njs_value_t *retval)
     start = path->start;
     end = start + path->length;
 
-    njs_set_object(&value, &vm->global_object);
+    njs_value_assign(&value, &vm->global_value);
 
     for ( ;; ) {
         p = njs_strlchr(start, end, '.');