code: 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;
      }
docs: Returns an object, that provides some methods to test the type of the subject.
  There is for every test a negated test to improve the readability of your code.
  So if you want to test for instanceOf() === false just call notInstanceOf().
  
  The subject of your test can be every possible value in JavaScript. You don't
  have to check if it's null or undefined before calling this method.
  
  @param {*} subject the subject of the test
  @return {Subject}