docs: function value(subject) {
          // Shortcut if value is used several times on the same subject
          if (context.subject !== subject) {
              setup(subject);
  
              subject = context.subject;
  
              if (subject !== undefined && subject !== null) {
                  // @see http://bonsaiden.github.com/JavaScript-Garden/#types.typeof
                  context.subjectType = Object.prototype.toString.call(subject).slice(8, -1);
                  context.subjectConstructor = subject.constructor;
                  context.isSet = true;
              }
          }
  
          return Subject;
      }