]> git.kaiwu.me - njs.git/commitdiff
Removing console.help() from CLI as it not needed anymore.
authorDmitry Volyntsev <xeioex@nginx.com>
Thu, 31 Oct 2019 15:17:32 +0000 (18:17 +0300)
committerDmitry Volyntsev <xeioex@nginx.com>
Thu, 31 Oct 2019 15:17:32 +0000 (18:17 +0300)
Now all available objects are accessible through the global object.

17 files changed:
src/njs_array.c
src/njs_boolean.c
src/njs_builtin.c
src/njs_crypto.c
src/njs_date.c
src/njs_error.c
src/njs_fs.c
src/njs_function.c
src/njs_json.c
src/njs_math.c
src/njs_number.c
src/njs_object.c
src/njs_object.h
src/njs_regexp.c
src/njs_shell.c
src/njs_string.c
test/njs_expect_test.exp

index 26ee0841909f89391e7f28d24aa0deb760524860..3fd1cb361bfa6e012f47412901d95e4baa3cc0ff 100644 (file)
@@ -322,7 +322,6 @@ static const njs_object_prop_t  njs_array_constructor_properties[] =
 
 
 const njs_object_init_t  njs_array_constructor_init = {
-    njs_str("Array"),
     njs_array_constructor_properties,
     njs_nitems(njs_array_constructor_properties),
 };
@@ -2987,7 +2986,6 @@ static const njs_object_prop_t  njs_array_prototype_properties[] =
 
 
 const njs_object_init_t  njs_array_prototype_init = {
-    njs_str("Array"),
     njs_array_prototype_properties,
     njs_nitems(njs_array_prototype_properties),
 };
@@ -3005,7 +3003,6 @@ const njs_object_prop_t  njs_array_instance_properties[] =
 
 
 const njs_object_init_t  njs_array_instance_init = {
-    njs_str("Array instance"),
     njs_array_instance_properties,
     njs_nitems(njs_array_instance_properties),
 };
index 79c54beddb760184f885965c9e8d0891eb713202..0dc4860ec1a073195cc5d85362131bcb5937c93e 100644 (file)
@@ -66,7 +66,6 @@ static const njs_object_prop_t  njs_boolean_constructor_properties[] =
 
 
 const njs_object_init_t  njs_boolean_constructor_init = {
-    njs_str("Boolean"),
     njs_boolean_constructor_properties,
     njs_nitems(njs_boolean_constructor_properties),
 };
@@ -161,7 +160,6 @@ static const njs_object_prop_t  njs_boolean_prototype_properties[] =
 
 
 const njs_object_init_t  njs_boolean_prototype_init = {
-    njs_str("Boolean"),
     njs_boolean_prototype_properties,
     njs_nitems(njs_boolean_prototype_properties),
 };
index 7396787f31e45e2328e4be54a33c14cabdab5ad7..4dd710fdb10bec2e3c32c3438f1297c39dd0872b 100644 (file)
@@ -199,10 +199,12 @@ njs_builtin_objects_create(njs_vm_t *vm)
     njs_lvlhsh_query_t         lhq;
     njs_regexp_pattern_t       *pattern;
     njs_object_prototype_t     *prototype;
+    const njs_object_prop_t    *prop;
     const njs_object_init_t    *obj, **p;
     const njs_function_init_t  *f;
 
     static const njs_str_t  sandbox_key = njs_str("sandbox");
+    static const njs_str_t  name_key = njs_str("name");
 
     shared = njs_mp_zalloc(vm->mem_pool, sizeof(njs_vm_shared_t));
     if (njs_slow_path(shared == NULL)) {
@@ -308,7 +310,18 @@ njs_builtin_objects_create(njs_vm_t *vm)
             }
         }
 
-        module->name = obj->name;
+        lhq.key = name_key;
+        lhq.key_hash = njs_djb_hash(name_key.start, name_key.length);
+        lhq.proto = &njs_object_hash_proto;
+
+        ret = njs_lvlhsh_find(&module->object.shared_hash, &lhq);
+        if (njs_fast_path(ret != NJS_OK)) {
+            return NJS_ERROR;
+        }
+
+        prop = lhq.value;
+
+        njs_string_get(&prop->value, &module->name);
         module->object.shared = 1;
 
         lhq.key = module->name;
@@ -1463,7 +1476,6 @@ static const njs_object_prop_t  njs_global_this_object_properties[] =
 
 
 const njs_object_init_t  njs_global_this_init = {
-    njs_str(""),
     njs_global_this_object_properties,
     njs_nitems(njs_global_this_object_properties)
 };
@@ -1489,7 +1501,6 @@ static const njs_object_prop_t  njs_njs_object_properties[] =
 
 
 const njs_object_init_t  njs_njs_object_init = {
-    njs_str("njs"),
     njs_njs_object_properties,
     njs_nitems(njs_njs_object_properties),
 };
@@ -1698,7 +1709,6 @@ static const njs_object_prop_t  njs_process_object_properties[] =
 
 
 const njs_object_init_t  njs_process_object_init = {
-    njs_str("process"),
     njs_process_object_properties,
     njs_nitems(njs_process_object_properties),
 };
index 81c90e1d7c213b94dde248e65c89e6181929c204..1b75ee3e17767e782068d5449f0073f61a8a3405 100644 (file)
@@ -347,7 +347,6 @@ static const njs_object_prop_t  njs_hash_prototype_properties[] =
 
 
 const njs_object_init_t  njs_hash_prototype_init = {
-    njs_str("Hash"),
     njs_hash_prototype_properties,
     njs_nitems(njs_hash_prototype_properties),
 };
@@ -386,7 +385,6 @@ static const njs_object_prop_t  njs_hash_constructor_properties[] =
 
 
 const njs_object_init_t  njs_hash_constructor_init = {
-    njs_str("Hash"),
     njs_hash_constructor_properties,
     njs_nitems(njs_hash_constructor_properties),
 };
@@ -631,7 +629,6 @@ static const njs_object_prop_t  njs_hmac_prototype_properties[] =
 
 
 const njs_object_init_t  njs_hmac_prototype_init = {
-    njs_str("Hmac"),
     njs_hmac_prototype_properties,
     njs_nitems(njs_hmac_prototype_properties),
 };
@@ -670,7 +667,6 @@ static const njs_object_prop_t  njs_hmac_constructor_properties[] =
 
 
 const njs_object_init_t  njs_hmac_constructor_init = {
-    njs_str("Hmac"),
     njs_hmac_constructor_properties,
     njs_nitems(njs_hmac_constructor_properties),
 };
@@ -711,7 +707,6 @@ static const njs_object_prop_t  njs_crypto_object_properties[] =
 
 
 const njs_object_init_t  njs_crypto_object_init = {
-    njs_str("crypto"),
     njs_crypto_object_properties,
     njs_nitems(njs_crypto_object_properties),
 };
index 0470880b2d46e946b551f466b943f602b59739d1..4ee839434e3fd04f7183b1fed9cb40280ef7ed6d 100644 (file)
@@ -1048,7 +1048,6 @@ static const njs_object_prop_t  njs_date_constructor_properties[] =
 
 
 const njs_object_init_t  njs_date_constructor_init = {
-    njs_str("Date"),
     njs_date_constructor_properties,
     njs_nitems(njs_date_constructor_properties),
 };
@@ -2888,7 +2887,6 @@ static const njs_object_prop_t  njs_date_prototype_properties[] =
 
 
 const njs_object_init_t  njs_date_prototype_init = {
-    njs_str("Date"),
     njs_date_prototype_properties,
     njs_nitems(njs_date_prototype_properties),
 };
index 0e17b88c93ab438d6c746223fabbe5a1975b0470..e01845564e84dc155d8bd780ef6789ecd725c638 100644 (file)
@@ -201,7 +201,6 @@ static const njs_object_prop_t  njs_error_constructor_properties[] =
 
 
 const njs_object_init_t  njs_error_constructor_init = {
-    njs_str("Error"),
     njs_error_constructor_properties,
     njs_nitems(njs_error_constructor_properties),
 };
@@ -243,7 +242,6 @@ static const njs_object_prop_t  njs_eval_error_constructor_properties[] =
 
 
 const njs_object_init_t  njs_eval_error_constructor_init = {
-    njs_str("EvalError"),
     njs_eval_error_constructor_properties,
     njs_nitems(njs_eval_error_constructor_properties),
 };
@@ -285,7 +283,6 @@ static const njs_object_prop_t  njs_internal_error_constructor_properties[] =
 
 
 const njs_object_init_t  njs_internal_error_constructor_init = {
-    njs_str("InternalError"),
     njs_internal_error_constructor_properties,
     njs_nitems(njs_internal_error_constructor_properties),
 };
@@ -327,7 +324,6 @@ static const njs_object_prop_t  njs_range_error_constructor_properties[] =
 
 
 const njs_object_init_t  njs_range_error_constructor_init = {
-    njs_str("RangeError"),
     njs_range_error_constructor_properties,
     njs_nitems(njs_range_error_constructor_properties),
 };
@@ -369,7 +365,6 @@ static const njs_object_prop_t  njs_reference_error_constructor_properties[] =
 
 
 const njs_object_init_t  njs_reference_error_constructor_init = {
-    njs_str("ReferenceError"),
     njs_reference_error_constructor_properties,
     njs_nitems(njs_reference_error_constructor_properties),
 };
@@ -411,7 +406,6 @@ static const njs_object_prop_t  njs_syntax_error_constructor_properties[] =
 
 
 const njs_object_init_t  njs_syntax_error_constructor_init = {
-    njs_str("SyntaxError"),
     njs_syntax_error_constructor_properties,
     njs_nitems(njs_syntax_error_constructor_properties),
 };
@@ -453,7 +447,6 @@ static const njs_object_prop_t  njs_type_error_constructor_properties[] =
 
 
 const njs_object_init_t  njs_type_error_constructor_init = {
-    njs_str("TypeError"),
     njs_type_error_constructor_properties,
     njs_nitems(njs_type_error_constructor_properties),
 };
@@ -495,7 +488,6 @@ static const njs_object_prop_t  njs_uri_error_constructor_properties[] =
 
 
 const njs_object_init_t  njs_uri_error_constructor_init = {
-    njs_str("URIError"),
     njs_uri_error_constructor_properties,
     njs_nitems(njs_uri_error_constructor_properties),
 };
@@ -597,7 +589,6 @@ static const njs_object_prop_t  njs_memory_error_constructor_properties[] =
 
 
 const njs_object_init_t  njs_memory_error_constructor_init = {
-    njs_str("MemoryError"),
     njs_memory_error_constructor_properties,
     njs_nitems(njs_memory_error_constructor_properties),
 };
@@ -762,7 +753,6 @@ static const njs_object_prop_t  njs_error_prototype_properties[] =
 
 
 const njs_object_init_t  njs_error_prototype_init = {
-    njs_str("Error"),
     njs_error_prototype_properties,
     njs_nitems(njs_error_prototype_properties),
 };
@@ -797,7 +787,6 @@ static const njs_object_prop_t  njs_eval_error_prototype_properties[] =
 
 
 const njs_object_init_t  njs_eval_error_prototype_init = {
-    njs_str("EvalError"),
     njs_eval_error_prototype_properties,
     njs_nitems(njs_eval_error_prototype_properties),
 };
@@ -852,7 +841,6 @@ static const njs_object_prop_t  njs_internal_error_prototype_properties[] =
 
 
 const njs_object_init_t  njs_internal_error_prototype_init = {
-    njs_str("InternalError"),
     njs_internal_error_prototype_properties,
     njs_nitems(njs_internal_error_prototype_properties),
 };
@@ -887,7 +875,6 @@ static const njs_object_prop_t  njs_range_error_prototype_properties[] =
 
 
 const njs_object_init_t  njs_range_error_prototype_init = {
-    njs_str("RangeError"),
     njs_range_error_prototype_properties,
     njs_nitems(njs_range_error_prototype_properties),
 };
@@ -922,7 +909,6 @@ static const njs_object_prop_t  njs_reference_error_prototype_properties[] =
 
 
 const njs_object_init_t  njs_reference_error_prototype_init = {
-    njs_str("ReferenceError"),
     njs_reference_error_prototype_properties,
     njs_nitems(njs_reference_error_prototype_properties),
 };
@@ -957,7 +943,6 @@ static const njs_object_prop_t  njs_syntax_error_prototype_properties[] =
 
 
 const njs_object_init_t  njs_syntax_error_prototype_init = {
-    njs_str("SyntaxError"),
     njs_syntax_error_prototype_properties,
     njs_nitems(njs_syntax_error_prototype_properties),
 };
@@ -992,7 +977,6 @@ static const njs_object_prop_t  njs_type_error_prototype_properties[] =
 
 
 const njs_object_init_t  njs_type_error_prototype_init = {
-    njs_str("TypeError"),
     njs_type_error_prototype_properties,
     njs_nitems(njs_type_error_prototype_properties),
 };
@@ -1027,7 +1011,6 @@ static const njs_object_prop_t  njs_uri_error_prototype_properties[] =
 
 
 const njs_object_init_t  njs_uri_error_prototype_init = {
-    njs_str("URIError"),
     njs_uri_error_prototype_properties,
     njs_nitems(njs_uri_error_prototype_properties),
 };
index 07a809dbb413a0958c45d8f0333874467efd02bf..80514602facf2b4a55930145226d5cb777feba3f 100644 (file)
@@ -1215,7 +1215,6 @@ static const njs_object_prop_t  njs_fs_object_properties[] =
 
 
 const njs_object_init_t  njs_fs_object_init = {
-    njs_str("fs"),
     njs_fs_object_properties,
     njs_nitems(njs_fs_object_properties),
 };
index ad2b02c001b334c40900d724ec9a7ddcbf49f1a8..5b6dbc15403481401de76ad0f209fb2c8658ec86 100644 (file)
@@ -275,7 +275,6 @@ const njs_object_prop_t  njs_arguments_object_instance_properties[] =
 
 
 const njs_object_init_t  njs_arguments_object_instance_init = {
-    njs_str("Argument object instance"),
     njs_arguments_object_instance_properties,
     njs_nitems(njs_arguments_object_instance_properties),
 };
@@ -872,7 +871,6 @@ static const njs_object_prop_t  njs_function_constructor_properties[] =
 
 
 const njs_object_init_t  njs_function_constructor_init = {
-    njs_str("Function"),
     njs_function_constructor_properties,
     njs_nitems(njs_function_constructor_properties),
 };
@@ -1157,7 +1155,6 @@ static const njs_object_prop_t  njs_function_prototype_properties[] =
 
 
 const njs_object_init_t  njs_function_prototype_init = {
-    njs_str("Function"),
     njs_function_prototype_properties,
     njs_nitems(njs_function_prototype_properties),
 };
@@ -1182,7 +1179,6 @@ const njs_object_prop_t  njs_function_instance_properties[] =
 
 
 const njs_object_init_t  njs_function_instance_init = {
-    njs_str("Function instance"),
     njs_function_instance_properties,
     njs_nitems(njs_function_instance_properties),
 };
@@ -1200,7 +1196,6 @@ const njs_object_prop_t  njs_arrow_instance_properties[] =
 
 
 const njs_object_init_t  njs_arrow_instance_init = {
-    njs_str("Arrow instance"),
     njs_arrow_instance_properties,
     njs_nitems(njs_arrow_instance_properties),
 };
@@ -1237,7 +1232,6 @@ static const njs_object_prop_t  njs_eval_function_properties[] =
 
 
 const njs_object_init_t  njs_eval_function_init = {
-    njs_str("eval"),
     njs_eval_function_properties,
     njs_nitems(njs_eval_function_properties),
 };
index d56987cb58d4f745b9d60cc31352018809fa743d..8a07d4a6f8fe817f1b2f531a3f04cbaae8d658d6 100644 (file)
@@ -2122,7 +2122,6 @@ static const njs_object_prop_t  njs_json_object_properties[] =
 
 
 const njs_object_init_t  njs_json_object_init = {
-    njs_str("JSON"),
     njs_json_object_properties,
     njs_nitems(njs_json_object_properties),
 };
index ab4393db36276b710f01acd26a778da6d0201b71..d1821f9902c0c4b8e4d86f36f61d61e42acb6ebf 100644 (file)
@@ -1321,7 +1321,6 @@ static const njs_object_prop_t  njs_math_object_properties[] =
 
 
 const njs_object_init_t  njs_math_object_init = {
-    njs_str("Math"),
     njs_math_object_properties,
     njs_nitems(njs_math_object_properties),
 };
index b1f8fc112c714b549d246fe2864f7ba0875adea0..ef3a55ead98e48aa57162b37754de3757714f8cc 100644 (file)
@@ -499,7 +499,6 @@ static const njs_object_prop_t  njs_number_constructor_properties[] =
 
 
 const njs_object_init_t  njs_number_constructor_init = {
-    njs_str("Number"),
     njs_number_constructor_properties,
     njs_nitems(njs_number_constructor_properties),
 };
@@ -963,7 +962,6 @@ static const njs_object_prop_t  njs_number_prototype_properties[] =
 
 
 const njs_object_init_t  njs_number_prototype_init = {
-    njs_str("Number"),
     njs_number_prototype_properties,
     njs_nitems(njs_number_prototype_properties),
 };
@@ -1146,7 +1144,6 @@ static const njs_object_prop_t  njs_is_finite_function_properties[] =
 
 
 const njs_object_init_t  njs_is_finite_function_init = {
-    njs_str("isFinite"),
     njs_is_finite_function_properties,
     njs_nitems(njs_is_finite_function_properties),
 };
index 2c41c8a9402e3d4977ceb8c7390262c7c695fde1..fd27472cd1c9fe05dec2381894b10af059b4ff63 100644 (file)
@@ -1912,7 +1912,6 @@ static const njs_object_prop_t  njs_object_constructor_properties[] =
 
 
 const njs_object_init_t  njs_object_constructor_init = {
-    njs_str("Object"),
     njs_object_constructor_properties,
     njs_nitems(njs_object_constructor_properties),
 };
@@ -2368,7 +2367,6 @@ static const njs_object_prop_t  njs_object_prototype_properties[] =
 
 
 const njs_object_init_t  njs_object_prototype_init = {
-    njs_str("Object"),
     njs_object_prototype_properties,
     njs_nitems(njs_object_prototype_properties),
 };
index 23823be3418bbec02c84460e5ca0a700a03aa43c..f8936bdf67bf24cd9022ec9eb4360cd3eae289e4 100644 (file)
@@ -37,7 +37,6 @@ typedef enum {
 
 
 struct njs_object_init_s {
-    njs_str_t                   name;
     const njs_object_prop_t     *properties;
     njs_uint_t                  items;
 };
index 9df0c57f8ec53ed3e959da3ed043af38dfed8b54..cf8465e659ddd822554a560359fc779b98a81a14 100644 (file)
@@ -1189,7 +1189,6 @@ static const njs_object_prop_t  njs_regexp_constructor_properties[] =
 
 
 const njs_object_init_t  njs_regexp_constructor_init = {
-    njs_str("RegExp"),
     njs_regexp_constructor_properties,
     njs_nitems(njs_regexp_constructor_properties),
 };
@@ -1266,7 +1265,6 @@ static const njs_object_prop_t  njs_regexp_prototype_properties[] =
 
 
 const njs_object_init_t  njs_regexp_prototype_init = {
-    njs_str("RegExp"),
     njs_regexp_prototype_properties,
     njs_nitems(njs_regexp_prototype_properties),
 };
index 07f7108fc83704a9706c9a7ad6023352a83d7742..b1e316c477bd8ef534be5df63527be63f320719e 100644 (file)
@@ -85,8 +85,6 @@ static njs_int_t njs_ext_console_log(njs_vm_t *vm, njs_value_t *args,
     njs_uint_t nargs, njs_index_t unused);
 static njs_int_t njs_ext_console_dump(njs_vm_t *vm, njs_value_t *args,
     njs_uint_t nargs, njs_index_t unused);
-static njs_int_t njs_ext_console_help(njs_vm_t *vm, njs_value_t *args,
-    njs_uint_t nargs, njs_index_t unused);
 static njs_int_t njs_ext_console_time(njs_vm_t *vm, njs_value_t *args,
     njs_uint_t nargs, njs_index_t unused);
 static njs_int_t njs_ext_console_time_end(njs_vm_t *vm, njs_value_t *args,
@@ -126,17 +124,6 @@ static njs_external_t  njs_ext_console[] = {
       njs_ext_console_dump,
       0 },
 
-    { njs_str("help"),
-      NJS_EXTERN_METHOD,
-      NULL,
-      0,
-      NULL,
-      NULL,
-      NULL,
-      NULL,
-      njs_ext_console_help,
-      0 },
-
     { njs_str("time"),
       NJS_EXTERN_METHOD,
       NULL,
@@ -473,8 +460,7 @@ njs_interactive_shell(njs_opts_t *opts, njs_vm_opt_t *vm_options)
     if (!opts->quiet) {
         njs_printf("interactive njs %s\n\n", NJS_VERSION);
 
-        njs_printf("v.<Tab> -> the properties and prototype methods of v.\n");
-        njs_printf("type console.help() for more information\n\n");
+        njs_printf("v.<Tab> -> the properties and prototype methods of v.\n\n");
     }
 
     for ( ;; ) {
@@ -1024,37 +1010,6 @@ njs_ext_console_dump(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
 }
 
 
-static njs_int_t
-njs_ext_console_help(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
-    njs_index_t unused)
-{
-    const njs_object_init_t  *obj, **objpp;
-
-    njs_printf("VM built-in objects:\n");
-
-    for (objpp = njs_constructor_init; *objpp != NULL; objpp++) {
-        obj = *objpp;
-
-        njs_printf("  %V\n", &obj->name);
-    }
-
-    for (objpp = njs_object_init; *objpp != NULL; objpp++) {
-        obj = *objpp;
-
-        njs_printf("  %V\n", &obj->name);
-    }
-
-    njs_printf("\nEmbedded objects:\n");
-    njs_printf("  console\n");
-
-    njs_printf("\n");
-
-    njs_set_undefined(&vm->retval);
-
-    return NJS_OK;
-}
-
-
 static njs_int_t
 njs_ext_console_time(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
     njs_index_t unused)
index 5ce3adf227195d29b2702dac685f70d0381a53cf..f5e0ba2bdae4707f91ced116e4baea87a284e25b 100644 (file)
@@ -630,7 +630,6 @@ static const njs_object_prop_t  njs_string_constructor_properties[] =
 
 
 const njs_object_init_t  njs_string_constructor_init = {
-    njs_str("String"),
     njs_string_constructor_properties,
     njs_nitems(njs_string_constructor_properties),
 };
@@ -4723,7 +4722,6 @@ static const njs_object_prop_t  njs_string_prototype_properties[] =
 
 
 const njs_object_init_t  njs_string_prototype_init = {
-    njs_str("String"),
     njs_string_prototype_properties,
     njs_nitems(njs_string_prototype_properties),
 };
@@ -4740,7 +4738,6 @@ const njs_object_prop_t  njs_string_instance_properties[] =
 
 
 const njs_object_init_t  njs_string_instance_init = {
-    njs_str("String instance"),
     njs_string_instance_properties,
     njs_nitems(njs_string_instance_properties),
 };
index 77431015080bbd9f1a8e49895d7ad9d6a9433b75..04cc3f6a0debf014d895c8b0e91c716b3564a2f5 100644 (file)
@@ -26,7 +26,6 @@ proc njs_test {body {opts ""}} {
 
     expect -re "interactive njs \\d+\.\\d+\.\\d+\r\n\r"
     expect "v.<Tab> -> the properties and prototype methods of v.\r
-type console.help() for more information\r
 \r
 >> "
 
@@ -220,8 +219,6 @@ njs_test {
      "console.dump(1)\r\n1\r\nundefined\r\n>> "}
     {"console.dump(1, 'a')\r\n"
      "console.dump(1, 'a')\r\n1 a\r\nundefined\r\n>> "}
-    {"console.help()\r\n"
-     "console.help()\r\nVM built-in objects:"}
 }
 
 # console.time* functions