code: function U(iid, op, left) {
          var result, aret, skip = false;
  
          if (sandbox.analysis && sandbox.analysis.unaryPre) {
              aret = sandbox.analysis.unaryPre(iid, op, left);
              if (aret) {
                  op = aret.op;
                  left = aret.left;
                  skip = aret.skip
              }
          }
  
          if (!skip) {
              switch (op) {
                  case "+":
                      result = +left;
                      break;
                  case "-":
                      result = -left;
                      break;
                  case "~":
                      result = ~left;
                      break;
                  case "!":
                      result = !left;
                      break;
                  case "typeof":
                      result = typeof left;
                      break;
                  case "void":
                      result = void(left);
                      break;
                  default:
                      throw new Error(op + " at " + iid + " not found");
                      break;
              }
          }
  
          if (sandbox.analysis && sandbox.analysis.unary) {
              aret = sandbox.analysis.unary(iid, op, left, result);
              if (aret) {
                  result = aret.result;
              }
          }
          return (lastComputedValue = result);
      }
docs: Unary operation