1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| "use strict";
|
| var call = Function.call;
|
| module.exports = function copyPrototypeMethods(prototype) {
| // eslint-disable-next-line @sinonjs/no-prototype-methods/no-prototype-methods
| return Object.getOwnPropertyNames(prototype).reduce(function(result, name) {
| // ignore size because it throws from Map
| if (
| name !== "size" &&
| name !== "caller" &&
| name !== "callee" &&
| name !== "arguments" &&
| typeof prototype[name] === "function"
| ) {
| result[name] = call.bind(prototype[name]);
| }
|
| return result;
| }, Object.create(null));
| };
|
|