UNPKG

foop

Version:

interfaces that describe their intentions.

36 lines (33 loc) 3.25 kB
var isNill = require('./nullOrUndefined') var isPrototypeOf = Object.prototype.isPrototypeOf /** * check if arg 1 is prototype of arg 2 * * @TODO curry2 * @memberOf is * @name isPrototypeOf * @since 3.0.0 * * @param {Object | *} haystack check needle against * @param {Object | *} needle is prototype of haystack * @return {boolean} needle isPrototypeOf haystack * * {@link https://tc39.github.io/ecma262/#sec-object.prototype.isprototypeof emca-is-prototype-of} * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf mozilla-obj-isprototypeof} * @see {@link mozilla-obj-isprototypeof} * @see {@link emca-is-prototype-of} * * @example * * class Eh extends Function {} * class Canada extends Eh {} * isPrototypeOf(Eh, Function) //=> true * isPrototypeOf(Canada, Function) //=> true * isPrototypeOf(Eh, Date) //=> false * * isPrototypeOf({}, Object) //=> true * isPrototypeOf({}, Array) //=> false * */ module.exports = function (haystack, needle) { return !isNill(haystack) && isPrototypeOf.call(haystack, needle); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG90eXBlT2YuanMiLCJzb3VyY2VzIjpbInByb3RvdHlwZU9mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzTmlsbCA9IHJlcXVpcmUoJy4vbnVsbE9yVW5kZWZpbmVkJylcblxuY29uc3QgaXNQcm90b3R5cGVPZiA9IE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZlxuXG4vKipcbiAqIGNoZWNrIGlmIGFyZyAxIGlzIHByb3RvdHlwZSBvZiBhcmcgMlxuICpcbiAqIEBUT0RPIGN1cnJ5MlxuICogQG1lbWJlck9mIGlzXG4gKiBAbmFtZSBpc1Byb3RvdHlwZU9mXG4gKiBAc2luY2UgMy4wLjBcbiAqXG4gKiBAcGFyYW0gIHtPYmplY3QgfCAqfSBoYXlzdGFjayBjaGVjayBuZWVkbGUgYWdhaW5zdFxuICogQHBhcmFtICB7T2JqZWN0IHwgKn0gbmVlZGxlIGlzIHByb3RvdHlwZSBvZiBoYXlzdGFja1xuICogQHJldHVybiB7Ym9vbGVhbn0gbmVlZGxlIGlzUHJvdG90eXBlT2YgaGF5c3RhY2tcbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS5pc3Byb3RvdHlwZW9mIGVtY2EtaXMtcHJvdG90eXBlLW9mfVxuICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9pc1Byb3RvdHlwZU9mIG1vemlsbGEtb2JqLWlzcHJvdG90eXBlb2Z9XG4gKiBAc2VlIHtAbGluayBtb3ppbGxhLW9iai1pc3Byb3RvdHlwZW9mfVxuICogQHNlZSB7QGxpbmsgZW1jYS1pcy1wcm90b3R5cGUtb2Z9XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICBjbGFzcyBFaCBleHRlbmRzIEZ1bmN0aW9uIHt9XG4gKiAgICBjbGFzcyBDYW5hZGEgZXh0ZW5kcyBFaCB7fVxuICogICAgaXNQcm90b3R5cGVPZihFaCwgRnVuY3Rpb24pIC8vPT4gdHJ1ZVxuICogICAgaXNQcm90b3R5cGVPZihDYW5hZGEsIEZ1bmN0aW9uKSAvLz0+IHRydWVcbiAqICAgIGlzUHJvdG90eXBlT2YoRWgsIERhdGUpIC8vPT4gZmFsc2VcbiAqXG4gKiAgICBpc1Byb3RvdHlwZU9mKHt9LCBPYmplY3QpIC8vPT4gdHJ1ZVxuICogICAgaXNQcm90b3R5cGVPZih7fSwgQXJyYXkpIC8vPT4gZmFsc2VcbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gKGhheXN0YWNrLCBuZWVkbGUpID0+XG4gICFpc05pbGwoaGF5c3RhY2spICYmIGlzUHJvdG90eXBlT2YuY2FsbChoYXlzdGFjaywgbmVlZGxlKVxuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7O0FBRTNDQSxHQUFLLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStCcEQsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFBLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxBQUNsQyxTQUFBLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFBOyJ9