chrome sort bug

Chrome version 69.0.3497.100 has a sort bug

by evgkch

JavaScript

const currentObj = {
	'@version': 'current',
  '@dateCreated': 'origin',
};

const arr = [
	{ timeStamp: 'current' },
	{ timeStamp: 4 },
	{ timeStamp: 'origin' },
  { timeStamp: 2 },
  { timeStamp: 5 },
];

const sortVersionsByPriority = () => {
	return arr.sort((a, b) => {
  	if (currentObj['@dateCreated'] == a.timeStamp &&
    	currentObj['@version'] == b.timeStamp)
      return -1;
    if (currentObj['@dateCreated'] == b.timeStamp &&
    	currentObj['@version'] == a.timeStamp)
      return 1;
  	if (currentObj['@dateCreated'] == a.timeStamp ||
    	currentObj['@version'] == a.timeStamp)
     	return -1;
    return 0;
  });
};

// right answer is [{timeStamp: "origin"}, {timeStamp: "current"}, {timeStamp: 4}, {timeStamp: 2}, {timeStamp: 5}]
// Chrome version 69.0.3497.100 has a bug
console.log(sortVersionsByPriority());
console.log(arr
	.sort((a, b) => currentObj['@version'] == a.timeStamp ? -1 : 0)
  .sort((a, b) => currentObj['@dateCreated'] == a.timeStamp ? -1 : 0)
 )
 
const _arr1 = arr
.sort((a, b) => currentObj['@version'] == a.timeStamp ? -1 : 0);
const _arr2 = arr
.sort((a, b) => currentObj['@dateCreated'] == a.timeStamp ? -1 : 0);
console.log(_arr2)