| 1234567891011121314151617181920212223242526272829303132333435363738394041 | 'use strict';const internals = {};module.exports = function (array1, array2, options = {}) {    if (!array1 ||        !array2) {        return (options.first ? null : []);    }    const common = [];    const hash = (Array.isArray(array1) ? new Set(array1) : array1);    const found = new Set();    for (const value of array2) {        if (internals.has(hash, value) &&            !found.has(value)) {            if (options.first) {                return value;            }            common.push(value);            found.add(value);        }    }    return (options.first ? null : common);};internals.has = function (ref, key) {    if (typeof ref.has === 'function') {        return ref.has(key);    }    return ref[key] !== undefined;};
 |