whole_func_string: function bravojs_print()
  {
    var output="";
    var i;
    var stdout;
  
    for (i=0; i < arguments.length; i++)
      output += arguments[i] + (i===arguments.length - 1 ? "" : " ");
    output.replace(/\t/, "        ");
  
    if (typeof window.document != "undefined" && (stdout = window.document.getElementById('stdout')))
    {
      output += "\n";
  
      if (typeof stdout.value !== "undefined")
      {
        stdout.value += output;
        if (stdout.focus)
          stdout.focus();
  
        if (stdout.tagName === "TEXTAREA")
          stdout.scrollTop = stdout.scrollHeight;
      }
      else
      {
        if (typeof stdout.innerText !== "undefined")
        {
          stdout.innerText = stdout.innerText.slice(0,-1) + output + " "; 	/* IE normalizes trailing newlines away */
        }
        else
          stdout.textContent += output;
      }
    }
    else if (typeof console === "object" && console.print)
    {
      console.print(output);
    }
    else if (typeof console === "object" && console.log)
    {
      console.log(output);
    }
    // WebWorker
    else if (typeof importScripts === "function" && typeof postMessage === "function")
    {
        postMessage({type: "log", data: output});
    }
    else
      alert(" * BravoJS stdout: " + output);
  }
func_code_string: function bravojs_print()
  {
    var output="";
    var i;
    var stdout;
  
    for (i=0; i < arguments.length; i++)
      output += arguments[i] + (i===arguments.length - 1 ? "" : " ");
    output.replace(/\t/, "        ");
  
    if (typeof window.document != "undefined" && (stdout = window.document.getElementById('stdout')))
    {
      output += "\n";
  
      if (typeof stdout.value !== "undefined")
      {
        stdout.value += output;
        if (stdout.focus)
          stdout.focus();
  
        if (stdout.tagName === "TEXTAREA")
          stdout.scrollTop = stdout.scrollHeight;
      }
      else
      {
        if (typeof stdout.innerText !== "undefined")
        {
          stdout.innerText = stdout.innerText.slice(0,-1) + output + " "; 	/* IE normalizes trailing newlines away */
        }
        else
          stdout.textContent += output;
      }
    }
    else if (typeof console === "object" && console.print)
    {
      console.print(output);
    }
    else if (typeof console === "object" && console.log)
    {
      console.log(output);
    }
    // WebWorker
    else if (typeof importScripts === "function" && typeof postMessage === "function")
    {
        postMessage({type: "log", data: output});
    }
    else
      alert(" * BravoJS stdout: " + output);
  }
func_documentation_string: Print to text to stdout