-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
40 lines (33 loc) · 906 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var _hasOwnProperty = Object.prototype.hasOwnProperty;
var _propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
export function hasOwnProperty(obj, key) {
return _hasOwnProperty.call(obj, key);
}
export function propertyIsEnumerable(obj, key) {
return _propertyIsEnumerable.call(obj, key);
}
export function merge(a, b) {
if (a && b) {
for (var key in b) {
a[key] = b[key];
}
}
return a;
}
export function isIterator(obj) {
if (!obj) {
return false;
}
if (obj.__shouldIterator__) {
return true;
}
return typeof obj.next === 'function' &&
typeof Symbol === 'function' &&
typeof Symbol.iterator === 'symbol' &&
typeof obj[Symbol.iterator] === 'function' &&
obj[Symbol.iterator]() === obj;
}
//TODO find better way
export function isGeneratorFunction(f) {
return typeof f === 'function' && /^function\s*\*\s*/.test(f.toString());
}