프로젝트

일반

사용자정보

통계
| 개정판:

root / HServer / 00.Server / 00.Program / node_modules / object-assign / index.js

이력 | 보기 | 이력해설 | 다운로드 (817 Bytes)

1
'use strict';
2
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
3

    
4
function ToObject(val) {
5
        if (val == null) {
6
                throw new TypeError('Object.assign cannot be called with null or undefined');
7
        }
8

    
9
        return Object(val);
10
}
11

    
12
function ownEnumerableKeys(obj) {
13
        var keys = Object.getOwnPropertyNames(obj);
14

    
15
        if (Object.getOwnPropertySymbols) {
16
                keys = keys.concat(Object.getOwnPropertySymbols(obj));
17
        }
18

    
19
        return keys.filter(function (key) {
20
                return propIsEnumerable.call(obj, key);
21
        });
22
}
23

    
24
module.exports = Object.assign || function (target, source) {
25
        var from;
26
        var keys;
27
        var to = ToObject(target);
28

    
29
        for (var s = 1; s < arguments.length; s++) {
30
                from = arguments[s];
31
                keys = ownEnumerableKeys(Object(from));
32

    
33
                for (var i = 0; i < keys.length; i++) {
34
                        to[keys[i]] = from[keys[i]];
35
                }
36
        }
37

    
38
        return to;
39
};