]> git.kaiwu.me - njs.git/commitdiff
Improved String.prototype.toString() for ordinary strings.
authorDmitry Volyntsev <xeioex@nginx.com>
Fri, 24 Jul 2020 14:02:04 +0000 (14:02 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Fri, 24 Jul 2020 14:02:04 +0000 (14:02 +0000)
Allowing converting all strings to encodings 'hex', 'base64', 'base64url'.

src/njs_string.c
src/test/njs_unit_test.c

index de575b8338d907a048fe9dfdd1d089d343162b89..6bd5d7f0073dd2264b3834fc9921d59a468e0fd7 100644 (file)
@@ -738,9 +738,9 @@ njs_string_prototype_value_of(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
 
 
 /*
- * String.toString([encoding]).
+ * String.prototype.toString([encoding]).
  * Returns the string as is if no additional argument is provided,
- * otherwise converts a byte string into an encoded string: hex, base64,
+ * otherwise converts a string into an encoded string: hex, base64,
  * base64url.
  */
 
@@ -771,11 +771,6 @@ njs_string_prototype_to_string(njs_vm_t *vm, njs_value_t *args,
 
     (void) njs_string_prop(&string, &value);
 
-    if (njs_slow_path(string.length != 0)) {
-        njs_type_error(vm, "argument must be a byte string");
-        return NJS_ERROR;
-    }
-
     njs_string_get(&args[1], &enc);
 
     str.length = string.size;
index 30618bdf6706cdf8962f0e37279a17298a15aece..83cad21bea41bde987a956095b879bb9f693d13b 100644 (file)
@@ -895,9 +895,6 @@ static njs_unit_test_t  njs_test[] =
     { njs_str("'A'.toString()"),
       njs_str("A") },
 
-    { njs_str("'A'.toString('hex')"),
-      njs_str("TypeError: argument must be a byte string") },
-
     { njs_str("'A'.toBytes().toString('latin1')"),
       njs_str("TypeError: Unknown encoding: \"latin1\"") },