whole_func_string: function(extraVars) {
          this.extraVars       = extendObject({}, extraVars || {});
          this._plugins        = [];
          this._headMap        = {};
          this.currentScenario = {plugin:   '*default*',
                                  scenario: '*default*'};
          this.testResults = {'*default*': {'*default*': {result: undefined,
                                                          passes: [],
                                                          failures: []}}};
          Object.defineProperty(this, 'scenarioResults', {
              get: function() {
                  deprecationWarning("scenarioResults is deprecated, please use testResults instead");
                  return this.testResults;
              }
          });
  
          // Register special plugins
          // Admin-related, dynamic heads
          this._registerPluginObject({name: '*admin-dynamic*'});
          // Admin
          var adminPlugin = require('./plugins/admin.js');
          var adminPluginConfig = extendObject(this.extraVars,
                                               {robohydra: this});
          adminPlugin.heads = adminPlugin.getBodyParts(adminPluginConfig);
          this._registerPluginObject(adminPlugin);
          // High priority, dynamic heads
          this._registerPluginObject({name: '*priority-dynamic*'});
          // Dynamic heads
          this._registerPluginObject({name: '*dynamic*'});
          // Current scenario heads
          this._registerPluginObject({name: '*current-scenario*'});
      }
func_code_string: function(extraVars) {
          this.extraVars       = extendObject({}, extraVars || {});
          this._plugins        = [];
          this._headMap        = {};
          this.currentScenario = {plugin:   '*default*',
                                  scenario: '*default*'};
          this.testResults = {'*default*': {'*default*': {result: undefined,
                                                          passes: [],
                                                          failures: []}}};
          Object.defineProperty(this, 'scenarioResults', {
              get: function() {
                  deprecationWarning("scenarioResults is deprecated, please use testResults instead");
                  return this.testResults;
              }
          });
  
          // Register special plugins
          // Admin-related, dynamic heads
          this._registerPluginObject({name: '*admin-dynamic*'});
          // Admin
          var adminPlugin = require('./plugins/admin.js');
          var adminPluginConfig = extendObject(this.extraVars,
                                               {robohydra: this});
          adminPlugin.heads = adminPlugin.getBodyParts(adminPluginConfig);
          this._registerPluginObject(adminPlugin);
          // High priority, dynamic heads
          this._registerPluginObject({name: '*priority-dynamic*'});
          // Dynamic heads
          this._registerPluginObject({name: '*dynamic*'});
          // Current scenario heads
          this._registerPluginObject({name: '*current-scenario*'});
      }
func_documentation_string: Current test (assertion) results. Its keys are plugin names and
  its values are objects with scenario names as keys. The values
  of the latter objects are test results: objects with the keys
  "result" (value is _undefined_ if the test doesn’t have any
  result yet, or the strings "pass" or "fail" if at least one
  assertion has run for that test), "passes" (an array with the
  description of the passing assertions) and "failures" (ditto
  for failing assertions). Assertion results obtained outside of
  a scenario are stored under the plugin name "\*default\*" and the
  scenario name "\*default\*".
  
  @property {Object} testResults
   
  Deprecated alias for testResults, please use testResults instead.
  
  @property {Object} scenarioResults
  @deprecated