File tree 3 files changed +30
-0
lines changed
3 files changed +30
-0
lines changed Original file line number Diff line number Diff line change @@ -5,4 +5,5 @@ node_modules
5
5
* .log
6
6
7
7
/dist
8
+ /json
8
9
/lite
Original file line number Diff line number Diff line change 18
18
" dist"
19
19
],
20
20
"modes" : {
21
+ "json" : " src/json.js" ,
21
22
"default" : " src/index.js" ,
22
23
"lite" : " src/lite.js"
23
24
},
Original file line number Diff line number Diff line change
1
+ export function klona ( val ) {
2
+ var k , out , tmp ;
3
+
4
+ if ( Array . isArray ( val ) ) {
5
+ out = Array ( k = val . length ) ;
6
+ while ( k -- ) out [ k ] = ( tmp = val [ k ] ) && typeof tmp === 'object' ? klona ( tmp ) : tmp ;
7
+ return out ;
8
+ }
9
+
10
+ if ( Object . prototype . toString . call ( val ) === '[object Object]' ) {
11
+ out = { } ; // null
12
+ for ( k in val ) {
13
+ if ( k === '__proto__' ) {
14
+ Object . defineProperty ( out , k , {
15
+ value : klona ( val [ k ] ) ,
16
+ configurable : true ,
17
+ enumerable : true ,
18
+ writable : true ,
19
+ } ) ;
20
+ } else {
21
+ out [ k ] = ( tmp = val [ k ] ) && typeof tmp === 'object' ? klona ( tmp ) : tmp ;
22
+ }
23
+ }
24
+ return out ;
25
+ }
26
+
27
+ return val ;
28
+ }
You can’t perform that action at this time.
0 commit comments