suppress mutation of input options (#3785)

This commit is contained in:
Alex Lam S.L
2020-04-17 08:13:49 +01:00
committed by GitHub
parent 83f42ede36
commit 9110fac9a2
2 changed files with 20 additions and 18 deletions

View File

@@ -87,15 +87,11 @@ DefaultsError.prototype.name = "DefaultsError";
configure_error_stack(DefaultsError);
function defaults(args, defs, croak) {
if (args === true) args = {};
var ret = args || {};
if (croak) for (var i in ret) if (HOP(ret, i) && !HOP(defs, i)) {
throw new DefaultsError("`" + i + "` is not a supported option", defs);
for (var i in args) if (HOP(args, i)) {
if (croak && !HOP(defs, i)) throw new DefaultsError("`" + i + "` is not a supported option", defs);
defs[i] = args[i];
}
for (var i in defs) if (HOP(defs, i)) {
ret[i] = (args && HOP(args, i)) ? args[i] : defs[i];
}
return ret;
return defs;
}
function merge(obj, ext) {