function exprToJs()

in packages/sqrl/src/js/SqrlJs.ts [325:346]


function exprToJs(expr: Expr, state: JsState): JsExpr {
  if (expr.type === "load") {
    return loadToJs(expr, state);
  } else if (expr.type === "constant") {
    return constantToJs(expr, state);
  } else if (expr.type === "value") {
    return `this.slots[${expr.slot.getIndex()}].value()`;
  } else if (expr.type === "iterator") {
    return `it0`;
  } else if (expr.type === "state") {
    return "this";
  } else if (expr.type === "if") {
    return ifToJs(expr, state);
  } else if (expr.type === "call") {
    return callToJs(expr, state);
  } else if (expr.type === "list") {
    return listToJs(expr, state);
  } else if (expr.type === "listComprehension") {
    return listComprehensionToJs(expr, state);
  }
  throw new Error("Invalid sqrl expr.");
}