njs_object_t *error;
const njs_value_t *value;
- if (nargs == 1) {
- value = &njs_string_empty;
+ value = njs_arg(args, nargs, 1);
- } else {
- value = &args[1];
- }
-
- error = njs_error_alloc(vm, type, NULL, value);
+ error = njs_error_alloc(vm, type, NULL,
+ njs_is_defined(value) ? value : NULL);
if (njs_slow_path(error == NULL)) {
return NJS_ERROR;
}
((value)->type == NJS_UNDEFINED)
+#define njs_is_defined(value) \
+ ((value)->type != NJS_UNDEFINED)
+
+
#define njs_is_null_or_undefined(value) \
((value)->type <= NJS_UNDEFINED)
{ njs_str("Error().__proto__.__proto__ == Object.prototype"),
njs_str("true") },
+ { njs_str("Error.prototype.message = 'm';"
+ "Error.prototype.name = 'n';"
+ "new Error()"),
+ njs_str("n: m") },
+
{ njs_str("EvalError('e')"),
njs_str("EvalError: e") },