Etude de code

Analyser le code suivant pour tenter de comprendre la fonction.

function byzarre(property) {
    let sortOrder = 1;
    if(property[0] === "-") {
        sortOrder = -1;
        property = property.substr(1);
    }
    return function (a,b) {
        let result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;
        return result * sortOrder;
    };


let t = [
  {l:1,h:3},
  {l:10,h:3},
  {l:5,h:30},
  ];
  

t.sort(byzarre("-l"));


Que donne le résultat ?