fixed dynamic port forward listener not getting cleaned up - fixes #4200

This commit is contained in:
Eugene Pankov
2021-07-13 19:27:02 +02:00
parent 6d7f25870e
commit 5053743b1b
3 changed files with 23 additions and 23 deletions

View File

@@ -21,7 +21,7 @@ function isStructuralMember (v) {
}
function isNonStructuralObjectMember (v): boolean {
return v instanceof Object && !(v instanceof Array) && v.__nonStructural
return v instanceof Object && (v instanceof Array || v.__nonStructural)
}
/** @hidden */
@@ -62,18 +62,18 @@ export class ConfigProxy {
if (real[key] !== undefined) {
return real[key]
} else {
if (isNonStructuralObjectMember(defaults[key])) {
// The object might be modified outside
real[key] = this.__getDefault(key)
delete real[key].__nonStructural
return real[key]
}
return this.__getDefault(key)
}
}
this.__getDefault = (key: string) => { // eslint-disable-line @typescript-eslint/unbound-method
if (isNonStructuralObjectMember(defaults[key])) {
real[key] = { ...defaults[key] }
delete real[key].__nonStructural
return real[key]
} else {
return deepClone(defaults[key])
}
return deepClone(defaults[key])
}
this.__setValue = (key: string, value: any) => { // eslint-disable-line @typescript-eslint/unbound-method