Calculating Delta CMC - CieLab2Hue isn't working properly

Function uses the formula posted at: http://www.easyrgb.com/index.php?X=DELT&H=06#text6

by chayacooper

HTML

<p id="demo"></p>
<p id="demo1"></p>
<p id="demo2"></p>

JavaScript

var CIEL1 = 53.23;
var CIEa1 = 80.42;
var CIEb1 = 66.97;

var CIEL2 = 0.00;
var CIEa2 = 0.00;
var CIEb2 = 0.00;
var WHTL = 2; //Weight factor
var WHTC = 1; //Weight factor
var dtor = Math.PI / 180;

document.getElementById("demo").innerHTML = myFunction();

function myFunction() {
    xC1 = Math.sqrt((CIEa1 ^ 2) + (CIEb1 ^ 2));
    xC2 = Math.sqrt((CIEa2 ^ 2) + (CIEb2 ^ 2));
    xff = Math.sqrt((xC1 ^ 4) / ((xC1 ^ 4) + 1900));
    // Trouble with declaring CieLab2Hue
    // xH1 = CieLab2Hue(CIEa1, CIEb1);
    xH1 = CIEa1, CIEb1;

    if (xH1 < 164 || xH1 > 345) {
        xTT = 0.36 + Math.abs(0.4 * Math.cos(dtor * (35 + xH1)))
    } else {
        xTT = 0.56 + Math.abs(0.2 * Math.cos(dtor * (168 + xH1)))
    }
    if (CIEL1 < 16) {
        xSL = 0.511
    } else {
        xSL = (0.040975 * CIEL1) / (1 + (0.01765 * CIEL1))
    }
    xSC = ((0.0638 * xC1) / (1 + (0.0131 * xC1))) + 0.638
    xSH = ((xff * xTT) + 1 - xff) * xSC
    xDH = Math.sqrt((CIEa2 - CIEa1) ^ 2 + (CIEb2 - CIEb1) ^ 2 - (xC2 - xC1) ^ 2)
    xSL = (CIEL2 - CIEL1) / WHTL * xSL
    xSC = (xC2 - xC1) / WHTC * xSC
    xSH = xDH / xSH
    DeltaCMC = Math.sqrt(xSL ^ 2 + xSC ^ 2 + xSH ^ 2)
    
    // Works until here  
   // return DeltaCMC;

     //CieLab2Hue(CIEa2, CIEb2)  //Function returns CIE-H° value
    {
        var_bias = 0;
        if (var_a >= 0 && var_b == 0) {
            return 0;
        }
        if (var_a < 0 && var_b == 0) {
            return 180;
        }
        if (var_a == 0 && var_b > 0) {
            return 90;
        }
        if (var_a == 0 && var_b < 0) {
            return 270;
        } 
        if (var_a > 0 && var_b > 0) {
            var_bias = 0;
        }
        if (var_a < 0) {
            var_bias = 180;
        }
        if (var_a > 0 && var_b < 0) {
            var_bias = 360;
        }        
        //return (rad2deg(atan(var_b / var_a)) + var_bias);
    }
}