1
1
'use strict' ;
2
2
3
- const assert = require ( 'assert' ) ;
4
3
const O = require ( '../omikron' ) ;
5
4
const util = require ( './util' ) ;
6
5
const su = require ( './str-util' ) ;
7
6
8
- class Base {
9
- static * deser ( ser ) { O . virtual ( 'deser' , 1 ) ; }
7
+ const assert = b => {
8
+ if ( b ) return ;
10
9
11
- * ser ( ser ) { O . virtual ( 'ser' ) ; }
12
- }
13
-
14
- const serMixed = function * ( ser , val ) {
15
- if ( typeof val === 'number' ) {
16
- ser . write ( 0 , 3 ) ;
17
- ser . writeInt ( val ) ;
18
-
19
- switch ( a ) {
20
- case 1 :
21
-
22
- }
23
-
24
- // [a-z]+\\([^\\n]*?\\)$
25
-
26
- return ;
27
- }
28
-
29
- if ( typeof val === 'string' ) {
30
- ser . write ( 1 , 3 ) ;
31
- ser . writeStr ( val ) ;
32
- return ;
33
- }
34
-
35
- if ( O . isArr ( val ) ) {
36
- ser . write ( 2 , 3 ) ;
37
- ser . writeInt ( val . length ) ;
38
-
39
- for ( const elem of val )
40
- yield [ serMixed , ser , elem ] ;
41
-
42
- return ;
43
- }
44
-
45
- assert ( typeof val === 'object' ) ;
46
- ser . write ( 3 , 3 ) ;
47
-
48
- if ( val === null ) {
49
- ser . write ( 0 ) ;
50
- return ;
51
- }
52
-
53
- ser . write ( 1 ) ;
54
-
55
- if ( O . proto ( val ) === null ) {
56
- ser . write ( 0 ) ;
57
-
58
- const keys = O . keys ( val ) ;
59
-
60
- ser . writeInt ( keys . length ) ;
61
-
62
- for ( const key of keys ) {
63
- // assert(typeof key === 'string');
64
- ser . writeStr ( key ) ;
65
- yield [ serMixed , ser , val [ key ] ] ;
66
- }
67
-
68
- return ;
69
- }
70
-
71
- ser . write ( 1 ) ;
72
-
73
- // assert(val instanceof Base);
74
- return O . tco ( [ val , 'ser' ] , ser ) ;
75
- } ;
76
-
77
- const deserMixed = function * ( ser , ctor ) {
78
- const type = Number ( ser . read ( 3 ) ) ;
79
-
80
- if ( type === 0 )
81
- return Number ( ser . readInt ( ) ) ;
82
-
83
- if ( type === 1 )
84
- return ser . readStr ( ) ;
85
-
86
- if ( type === 2 ) {
87
- const len = Number ( ser . readInt ( ) ) ;
88
- const arr = [ ] ;
89
-
90
- for ( let i = 0 ; i !== len ; i ++ )
91
- arr . push ( yield [ deserMixed , ser , ctor ] ) ;
92
-
93
- return arr ;
94
- }
95
-
96
- if ( ! ser . read ( ) )
97
- return null ;
98
-
99
- if ( ! ser . read ( ) ) {
100
- const size = Number ( ser . readInt ( ) ) ;
101
- const obj = O . obj ( ) ;
102
-
103
- for ( let i = 0 ; i !== size ; i ++ ) {
104
- const key = ser . readStr ( ) ;
105
- obj [ key ] = yield [ deserMixed , ser , ctor ] ;
106
- }
107
-
108
- return obj ;
109
- }
110
-
111
- return O . tco ( [ ctor , 'deser' ] , ser ) ;
10
+ debugger ;
11
+ throw new Error ( 'Assertion failed' ) ;
112
12
} ;
113
13
114
- module . exports = Object . assign ( Base , {
115
- serMixed,
116
- deserMixed,
117
- } ) ;
14
+ module . exports = Object . assign ( assert , { } ) ;
0 commit comments