| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | 
							- 'use strict';
 
- var CONSTRUCTORS = {
 
-   Object: Object,
 
-   Array: Array,
 
-   Function: Function,
 
-   Number: Number,
 
-   String: String,
 
-   Date: Date,
 
-   RegExp: RegExp
 
- };
 
- module.exports = function defFunc(ajv) {
 
-   /* istanbul ignore else */
 
-   if (typeof Buffer != 'undefined')
 
-     CONSTRUCTORS.Buffer = Buffer;
 
-   /* istanbul ignore else */
 
-   if (typeof Promise != 'undefined')
 
-     CONSTRUCTORS.Promise = Promise;
 
-   defFunc.definition = {
 
-     compile: function (schema) {
 
-       if (typeof schema == 'string') {
 
-         var Constructor = getConstructor(schema);
 
-         return function (data) {
 
-           return data instanceof Constructor;
 
-         };
 
-       }
 
-       var constructors = schema.map(getConstructor);
 
-       return function (data) {
 
-         for (var i=0; i<constructors.length; i++)
 
-           if (data instanceof constructors[i]) return true;
 
-         return false;
 
-       };
 
-     },
 
-     CONSTRUCTORS: CONSTRUCTORS,
 
-     metaSchema: {
 
-       anyOf: [
 
-         { type: 'string' },
 
-         {
 
-           type: 'array',
 
-           items: { type: 'string' }
 
-         }
 
-       ]
 
-     }
 
-   };
 
-   ajv.addKeyword('instanceof', defFunc.definition);
 
-   return ajv;
 
-   function getConstructor(c) {
 
-     var Constructor = CONSTRUCTORS[c];
 
-     if (Constructor) return Constructor;
 
-     throw new Error('invalid "instanceof" keyword value ' + c);
 
-   }
 
- };
 
 
  |