whole_func_string: function IsFunctionContextLocalsChanged(function_info1, function_info2) {
      var scope_info1 = function_info1.scope_info;
      var scope_info2 = function_info2.scope_info;
  
      var scope_info1_text;
      var scope_info2_text;
  
      if (scope_info1) {
        scope_info1_text = scope_info1.toString();
      } else {
        scope_info1_text = "";
      }
      if (scope_info2) {
        scope_info2_text = scope_info2.toString();
      } else {
        scope_info2_text = "";
      }
  
      if (scope_info1_text != scope_info2_text) {
        return "Variable map changed: [" + scope_info1_text +
            "] => [" + scope_info2_text + "]";
      }
      // No differences. Return undefined.
      return;
    }
func_code_string: function IsFunctionContextLocalsChanged(function_info1, function_info2) {
      var scope_info1 = function_info1.scope_info;
      var scope_info2 = function_info2.scope_info;
  
      var scope_info1_text;
      var scope_info2_text;
  
      if (scope_info1) {
        scope_info1_text = scope_info1.toString();
      } else {
        scope_info1_text = "";
      }
      if (scope_info2) {
        scope_info2_text = scope_info2.toString();
      } else {
        scope_info2_text = "";
      }
  
      if (scope_info1_text != scope_info2_text) {
        return "Variable map changed: [" + scope_info1_text +
            "] => [" + scope_info2_text + "]";
      }
      // No differences. Return undefined.
      return;
    }
func_documentation_string: Compares a function scope heap structure, old and new version, whether it changed or not. Returns explanation if they differ.