- Version: v12.2.0
- Platform: Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64 x86_64
Some object properties cannot be assigned to 0 if they currently have a value of -0, without being first set to a non-zero value.
constduration={years: -0,months: -0,weeks: -0,days: -0,hours: -0,minutes: -0,seconds: -0,milliseconds: -0};Object.keys(duration).forEach(key=>{duration[key]=0;});console.log(duration);/* ✅ For node v11.11.0, all values on `duration` are logged as positive 0. * ❌ For node v12.2.0, the logged output is consistently as follows: * { * years: 0, * months: 0, * weeks: 0, * days: -0, * hours: -0, * minutes: -0, * seconds: -0, * milliseconds: -0 * } */// Expected behaviour can be achieved by changing the value to a non-zero value first:Object.keys(duration).forEach(key=>{duration[key]=1;duration[key]=0;});console.log(duration);// ✅ Correct for both v11.11.0 and v12.2.0
Some object properties cannot be assigned to
0if they currently have a value of-0, without being first set to a non-zero value.