@openwebf/webf 0.22.3 → 0.22.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/IDLBlob.js +17 -0
  2. package/dist/analyzer.js +578 -0
  3. package/dist/analyzer_original.js +467 -0
  4. package/dist/commands.js +704 -0
  5. package/dist/dart.js +300 -0
  6. package/dist/declaration.js +63 -0
  7. package/dist/generator.js +466 -0
  8. package/dist/logger.js +103 -0
  9. package/dist/react.js +283 -0
  10. package/dist/utils.js +127 -0
  11. package/dist/vue.js +159 -0
  12. package/package.json +11 -1
  13. package/src/dart.ts +138 -7
  14. package/templates/class.dart.tpl +7 -2
  15. package/templates/react.package.json.tpl +1 -1
  16. package/CLAUDE.md +0 -206
  17. package/README-zhCN.md +0 -256
  18. package/coverage/clover.xml +0 -1295
  19. package/coverage/coverage-final.json +0 -12
  20. package/coverage/lcov-report/IDLBlob.ts.html +0 -142
  21. package/coverage/lcov-report/analyzer.ts.html +0 -2158
  22. package/coverage/lcov-report/analyzer_original.ts.html +0 -1450
  23. package/coverage/lcov-report/base.css +0 -224
  24. package/coverage/lcov-report/block-navigation.js +0 -87
  25. package/coverage/lcov-report/commands.ts.html +0 -700
  26. package/coverage/lcov-report/dart.ts.html +0 -490
  27. package/coverage/lcov-report/declaration.ts.html +0 -337
  28. package/coverage/lcov-report/favicon.png +0 -0
  29. package/coverage/lcov-report/generator.ts.html +0 -1171
  30. package/coverage/lcov-report/index.html +0 -266
  31. package/coverage/lcov-report/logger.ts.html +0 -424
  32. package/coverage/lcov-report/prettify.css +0 -1
  33. package/coverage/lcov-report/prettify.js +0 -2
  34. package/coverage/lcov-report/react.ts.html +0 -619
  35. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  36. package/coverage/lcov-report/sorter.js +0 -196
  37. package/coverage/lcov-report/utils.ts.html +0 -466
  38. package/coverage/lcov-report/vue.ts.html +0 -613
  39. package/coverage/lcov.info +0 -2149
  40. package/jest.config.js +0 -24
@@ -1,1450 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for analyzer_original.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="prettify.css" />
9
- <link rel="stylesheet" href="base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="index.html">All files</a> analyzer_original.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>0/289</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/119</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>0/25</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>0/276</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line low'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a>
514
- <a name='L449'></a><a href='#L449'>449</a>
515
- <a name='L450'></a><a href='#L450'>450</a>
516
- <a name='L451'></a><a href='#L451'>451</a>
517
- <a name='L452'></a><a href='#L452'>452</a>
518
- <a name='L453'></a><a href='#L453'>453</a>
519
- <a name='L454'></a><a href='#L454'>454</a>
520
- <a name='L455'></a><a href='#L455'>455</a>
521
- <a name='L456'></a><a href='#L456'>456</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-no">&nbsp;</span>
524
- <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-no">&nbsp;</span>
535
- <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-neutral">&nbsp;</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-no">&nbsp;</span>
547
- <span class="cline-any cline-no">&nbsp;</span>
548
- <span class="cline-any cline-no">&nbsp;</span>
549
- <span class="cline-any cline-no">&nbsp;</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-neutral">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-no">&nbsp;</span>
554
- <span class="cline-any cline-no">&nbsp;</span>
555
- <span class="cline-any cline-no">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-no">&nbsp;</span>
558
- <span class="cline-any cline-no">&nbsp;</span>
559
- <span class="cline-any cline-no">&nbsp;</span>
560
- <span class="cline-any cline-no">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-no">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-no">&nbsp;</span>
571
- <span class="cline-any cline-no">&nbsp;</span>
572
- <span class="cline-any cline-no">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-no">&nbsp;</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-no">&nbsp;</span>
579
- <span class="cline-any cline-no">&nbsp;</span>
580
- <span class="cline-any cline-no">&nbsp;</span>
581
- <span class="cline-any cline-no">&nbsp;</span>
582
- <span class="cline-any cline-no">&nbsp;</span>
583
- <span class="cline-any cline-no">&nbsp;</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-no">&nbsp;</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-no">&nbsp;</span>
591
- <span class="cline-any cline-no">&nbsp;</span>
592
- <span class="cline-any cline-no">&nbsp;</span>
593
- <span class="cline-any cline-no">&nbsp;</span>
594
- <span class="cline-any cline-no">&nbsp;</span>
595
- <span class="cline-any cline-no">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-no">&nbsp;</span>
598
- <span class="cline-any cline-no">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-no">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-no">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-no">&nbsp;</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-no">&nbsp;</span>
609
- <span class="cline-any cline-no">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-no">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-no">&nbsp;</span>
622
- <span class="cline-any cline-no">&nbsp;</span>
623
- <span class="cline-any cline-no">&nbsp;</span>
624
- <span class="cline-any cline-no">&nbsp;</span>
625
- <span class="cline-any cline-no">&nbsp;</span>
626
- <span class="cline-any cline-no">&nbsp;</span>
627
- <span class="cline-any cline-no">&nbsp;</span>
628
- <span class="cline-any cline-no">&nbsp;</span>
629
- <span class="cline-any cline-no">&nbsp;</span>
630
- <span class="cline-any cline-no">&nbsp;</span>
631
- <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-no">&nbsp;</span>
633
- <span class="cline-any cline-no">&nbsp;</span>
634
- <span class="cline-any cline-no">&nbsp;</span>
635
- <span class="cline-any cline-no">&nbsp;</span>
636
- <span class="cline-any cline-no">&nbsp;</span>
637
- <span class="cline-any cline-no">&nbsp;</span>
638
- <span class="cline-any cline-no">&nbsp;</span>
639
- <span class="cline-any cline-no">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-no">&nbsp;</span>
642
- <span class="cline-any cline-no">&nbsp;</span>
643
- <span class="cline-any cline-no">&nbsp;</span>
644
- <span class="cline-any cline-no">&nbsp;</span>
645
- <span class="cline-any cline-no">&nbsp;</span>
646
- <span class="cline-any cline-no">&nbsp;</span>
647
- <span class="cline-any cline-no">&nbsp;</span>
648
- <span class="cline-any cline-no">&nbsp;</span>
649
- <span class="cline-any cline-no">&nbsp;</span>
650
- <span class="cline-any cline-no">&nbsp;</span>
651
- <span class="cline-any cline-no">&nbsp;</span>
652
- <span class="cline-any cline-no">&nbsp;</span>
653
- <span class="cline-any cline-no">&nbsp;</span>
654
- <span class="cline-any cline-no">&nbsp;</span>
655
- <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-no">&nbsp;</span>
657
- <span class="cline-any cline-no">&nbsp;</span>
658
- <span class="cline-any cline-no">&nbsp;</span>
659
- <span class="cline-any cline-no">&nbsp;</span>
660
- <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-no">&nbsp;</span>
662
- <span class="cline-any cline-no">&nbsp;</span>
663
- <span class="cline-any cline-neutral">&nbsp;</span>
664
- <span class="cline-any cline-no">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-no">&nbsp;</span>
667
- <span class="cline-any cline-no">&nbsp;</span>
668
- <span class="cline-any cline-no">&nbsp;</span>
669
- <span class="cline-any cline-neutral">&nbsp;</span>
670
- <span class="cline-any cline-no">&nbsp;</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-no">&nbsp;</span>
676
- <span class="cline-any cline-no">&nbsp;</span>
677
- <span class="cline-any cline-no">&nbsp;</span>
678
- <span class="cline-any cline-no">&nbsp;</span>
679
- <span class="cline-any cline-no">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-no">&nbsp;</span>
682
- <span class="cline-any cline-no">&nbsp;</span>
683
- <span class="cline-any cline-no">&nbsp;</span>
684
- <span class="cline-any cline-no">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-no">&nbsp;</span>
687
- <span class="cline-any cline-no">&nbsp;</span>
688
- <span class="cline-any cline-no">&nbsp;</span>
689
- <span class="cline-any cline-no">&nbsp;</span>
690
- <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-no">&nbsp;</span>
692
- <span class="cline-any cline-no">&nbsp;</span>
693
- <span class="cline-any cline-no">&nbsp;</span>
694
- <span class="cline-any cline-no">&nbsp;</span>
695
- <span class="cline-any cline-no">&nbsp;</span>
696
- <span class="cline-any cline-no">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-no">&nbsp;</span>
700
- <span class="cline-any cline-no">&nbsp;</span>
701
- <span class="cline-any cline-no">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-no">&nbsp;</span>
704
- <span class="cline-any cline-no">&nbsp;</span>
705
- <span class="cline-any cline-no">&nbsp;</span>
706
- <span class="cline-any cline-no">&nbsp;</span>
707
- <span class="cline-any cline-neutral">&nbsp;</span>
708
- <span class="cline-any cline-no">&nbsp;</span>
709
- <span class="cline-any cline-neutral">&nbsp;</span>
710
- <span class="cline-any cline-no">&nbsp;</span>
711
- <span class="cline-any cline-no">&nbsp;</span>
712
- <span class="cline-any cline-no">&nbsp;</span>
713
- <span class="cline-any cline-no">&nbsp;</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-neutral">&nbsp;</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-no">&nbsp;</span>
718
- <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-no">&nbsp;</span>
721
- <span class="cline-any cline-no">&nbsp;</span>
722
- <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-no">&nbsp;</span>
724
- <span class="cline-any cline-neutral">&nbsp;</span>
725
- <span class="cline-any cline-no">&nbsp;</span>
726
- <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-no">&nbsp;</span>
730
- <span class="cline-any cline-no">&nbsp;</span>
731
- <span class="cline-any cline-no">&nbsp;</span>
732
- <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-neutral">&nbsp;</span>
734
- <span class="cline-any cline-no">&nbsp;</span>
735
- <span class="cline-any cline-no">&nbsp;</span>
736
- <span class="cline-any cline-no">&nbsp;</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-neutral">&nbsp;</span>
740
- <span class="cline-any cline-no">&nbsp;</span>
741
- <span class="cline-any cline-no">&nbsp;</span>
742
- <span class="cline-any cline-no">&nbsp;</span>
743
- <span class="cline-any cline-no">&nbsp;</span>
744
- <span class="cline-any cline-neutral">&nbsp;</span>
745
- <span class="cline-any cline-no">&nbsp;</span>
746
- <span class="cline-any cline-neutral">&nbsp;</span>
747
- <span class="cline-any cline-no">&nbsp;</span>
748
- <span class="cline-any cline-no">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-no">&nbsp;</span>
751
- <span class="cline-any cline-no">&nbsp;</span>
752
- <span class="cline-any cline-no">&nbsp;</span>
753
- <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-no">&nbsp;</span>
755
- <span class="cline-any cline-no">&nbsp;</span>
756
- <span class="cline-any cline-no">&nbsp;</span>
757
- <span class="cline-any cline-no">&nbsp;</span>
758
- <span class="cline-any cline-no">&nbsp;</span>
759
- <span class="cline-any cline-no">&nbsp;</span>
760
- <span class="cline-any cline-no">&nbsp;</span>
761
- <span class="cline-any cline-no">&nbsp;</span>
762
- <span class="cline-any cline-neutral">&nbsp;</span>
763
- <span class="cline-any cline-neutral">&nbsp;</span>
764
- <span class="cline-any cline-no">&nbsp;</span>
765
- <span class="cline-any cline-no">&nbsp;</span>
766
- <span class="cline-any cline-no">&nbsp;</span>
767
- <span class="cline-any cline-neutral">&nbsp;</span>
768
- <span class="cline-any cline-no">&nbsp;</span>
769
- <span class="cline-any cline-neutral">&nbsp;</span>
770
- <span class="cline-any cline-no">&nbsp;</span>
771
- <span class="cline-any cline-no">&nbsp;</span>
772
- <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-no">&nbsp;</span>
774
- <span class="cline-any cline-neutral">&nbsp;</span>
775
- <span class="cline-any cline-neutral">&nbsp;</span>
776
- <span class="cline-any cline-neutral">&nbsp;</span>
777
- <span class="cline-any cline-no">&nbsp;</span>
778
- <span class="cline-any cline-neutral">&nbsp;</span>
779
- <span class="cline-any cline-neutral">&nbsp;</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-neutral">&nbsp;</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-no">&nbsp;</span>
785
- <span class="cline-any cline-no">&nbsp;</span>
786
- <span class="cline-any cline-no">&nbsp;</span>
787
- <span class="cline-any cline-no">&nbsp;</span>
788
- <span class="cline-any cline-no">&nbsp;</span>
789
- <span class="cline-any cline-no">&nbsp;</span>
790
- <span class="cline-any cline-no">&nbsp;</span>
791
- <span class="cline-any cline-no">&nbsp;</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-neutral">&nbsp;</span>
794
- <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-no">&nbsp;</span>
796
- <span class="cline-any cline-no">&nbsp;</span>
797
- <span class="cline-any cline-neutral">&nbsp;</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span>
799
- <span class="cline-any cline-neutral">&nbsp;</span>
800
- <span class="cline-any cline-no">&nbsp;</span>
801
- <span class="cline-any cline-neutral">&nbsp;</span>
802
- <span class="cline-any cline-no">&nbsp;</span>
803
- <span class="cline-any cline-no">&nbsp;</span>
804
- <span class="cline-any cline-no">&nbsp;</span>
805
- <span class="cline-any cline-no">&nbsp;</span>
806
- <span class="cline-any cline-no">&nbsp;</span>
807
- <span class="cline-any cline-no">&nbsp;</span>
808
- <span class="cline-any cline-no">&nbsp;</span>
809
- <span class="cline-any cline-no">&nbsp;</span>
810
- <span class="cline-any cline-no">&nbsp;</span>
811
- <span class="cline-any cline-no">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-no">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-no">&nbsp;</span>
817
- <span class="cline-any cline-no">&nbsp;</span>
818
- <span class="cline-any cline-no">&nbsp;</span>
819
- <span class="cline-any cline-no">&nbsp;</span>
820
- <span class="cline-any cline-neutral">&nbsp;</span>
821
- <span class="cline-any cline-neutral">&nbsp;</span>
822
- <span class="cline-any cline-no">&nbsp;</span>
823
- <span class="cline-any cline-no">&nbsp;</span>
824
- <span class="cline-any cline-neutral">&nbsp;</span>
825
- <span class="cline-any cline-no">&nbsp;</span>
826
- <span class="cline-any cline-no">&nbsp;</span>
827
- <span class="cline-any cline-no">&nbsp;</span>
828
- <span class="cline-any cline-no">&nbsp;</span>
829
- <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-no">&nbsp;</span>
831
- <span class="cline-any cline-no">&nbsp;</span>
832
- <span class="cline-any cline-no">&nbsp;</span>
833
- <span class="cline-any cline-no">&nbsp;</span>
834
- <span class="cline-any cline-no">&nbsp;</span>
835
- <span class="cline-any cline-no">&nbsp;</span>
836
- <span class="cline-any cline-no">&nbsp;</span>
837
- <span class="cline-any cline-no">&nbsp;</span>
838
- <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-no">&nbsp;</span>
840
- <span class="cline-any cline-no">&nbsp;</span>
841
- <span class="cline-any cline-no">&nbsp;</span>
842
- <span class="cline-any cline-no">&nbsp;</span>
843
- <span class="cline-any cline-no">&nbsp;</span>
844
- <span class="cline-any cline-no">&nbsp;</span>
845
- <span class="cline-any cline-no">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-no">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-no">&nbsp;</span>
850
- <span class="cline-any cline-neutral">&nbsp;</span>
851
- <span class="cline-any cline-no">&nbsp;</span>
852
- <span class="cline-any cline-neutral">&nbsp;</span>
853
- <span class="cline-any cline-no">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-no">&nbsp;</span>
856
- <span class="cline-any cline-no">&nbsp;</span>
857
- <span class="cline-any cline-no">&nbsp;</span>
858
- <span class="cline-any cline-no">&nbsp;</span>
859
- <span class="cline-any cline-no">&nbsp;</span>
860
- <span class="cline-any cline-no">&nbsp;</span>
861
- <span class="cline-any cline-no">&nbsp;</span>
862
- <span class="cline-any cline-neutral">&nbsp;</span>
863
- <span class="cline-any cline-neutral">&nbsp;</span>
864
- <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-no">&nbsp;</span>
866
- <span class="cline-any cline-neutral">&nbsp;</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-no">&nbsp;</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-no">&nbsp;</span>
874
- <span class="cline-any cline-no">&nbsp;</span>
875
- <span class="cline-any cline-no">&nbsp;</span>
876
- <span class="cline-any cline-no">&nbsp;</span>
877
- <span class="cline-any cline-no">&nbsp;</span>
878
- <span class="cline-any cline-no">&nbsp;</span>
879
- <span class="cline-any cline-no">&nbsp;</span>
880
- <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-no">&nbsp;</span>
882
- <span class="cline-any cline-no">&nbsp;</span>
883
- <span class="cline-any cline-no">&nbsp;</span>
884
- <span class="cline-any cline-no">&nbsp;</span>
885
- <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-no">&nbsp;</span>
888
- <span class="cline-any cline-no">&nbsp;</span>
889
- <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-neutral">&nbsp;</span>
891
- <span class="cline-any cline-neutral">&nbsp;</span>
892
- <span class="cline-any cline-neutral">&nbsp;</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-no">&nbsp;</span>
895
- <span class="cline-any cline-no">&nbsp;</span>
896
- <span class="cline-any cline-no">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-neutral">&nbsp;</span>
899
- <span class="cline-any cline-no">&nbsp;</span>
900
- <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-no">&nbsp;</span>
902
- <span class="cline-any cline-no">&nbsp;</span>
903
- <span class="cline-any cline-no">&nbsp;</span>
904
- <span class="cline-any cline-no">&nbsp;</span>
905
- <span class="cline-any cline-no">&nbsp;</span>
906
- <span class="cline-any cline-no">&nbsp;</span>
907
- <span class="cline-any cline-no">&nbsp;</span>
908
- <span class="cline-any cline-no">&nbsp;</span>
909
- <span class="cline-any cline-no">&nbsp;</span>
910
- <span class="cline-any cline-no">&nbsp;</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-no">&nbsp;</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-no">&nbsp;</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-no">&nbsp;</span>
920
- <span class="cline-any cline-neutral">&nbsp;</span>
921
- <span class="cline-any cline-neutral">&nbsp;</span>
922
- <span class="cline-any cline-no">&nbsp;</span>
923
- <span class="cline-any cline-no">&nbsp;</span>
924
- <span class="cline-any cline-no">&nbsp;</span>
925
- <span class="cline-any cline-no">&nbsp;</span>
926
- <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-no">&nbsp;</span>
928
- <span class="cline-any cline-no">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-no">&nbsp;</span>
931
- <span class="cline-any cline-no">&nbsp;</span>
932
- <span class="cline-any cline-no">&nbsp;</span>
933
- <span class="cline-any cline-no">&nbsp;</span>
934
- <span class="cline-any cline-no">&nbsp;</span>
935
- <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-no">&nbsp;</span>
938
- <span class="cline-any cline-no">&nbsp;</span>
939
- <span class="cline-any cline-no">&nbsp;</span>
940
- <span class="cline-any cline-no">&nbsp;</span>
941
- <span class="cline-any cline-no">&nbsp;</span>
942
- <span class="cline-any cline-no">&nbsp;</span>
943
- <span class="cline-any cline-no">&nbsp;</span>
944
- <span class="cline-any cline-neutral">&nbsp;</span>
945
- <span class="cline-any cline-no">&nbsp;</span>
946
- <span class="cline-any cline-no">&nbsp;</span>
947
- <span class="cline-any cline-no">&nbsp;</span>
948
- <span class="cline-any cline-no">&nbsp;</span>
949
- <span class="cline-any cline-neutral">&nbsp;</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-no">&nbsp;</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-no">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-no">&nbsp;</span>
959
- <span class="cline-any cline-no">&nbsp;</span>
960
- <span class="cline-any cline-no">&nbsp;</span>
961
- <span class="cline-any cline-no">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-no">&nbsp;</span>
964
- <span class="cline-any cline-no">&nbsp;</span>
965
- <span class="cline-any cline-no">&nbsp;</span>
966
- <span class="cline-any cline-no">&nbsp;</span>
967
- <span class="cline-any cline-no">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-neutral">&nbsp;</span>
970
- <span class="cline-any cline-no">&nbsp;</span>
971
- <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-neutral">&nbsp;</span>
973
- <span class="cline-any cline-neutral">&nbsp;</span>
974
- <span class="cline-any cline-no">&nbsp;</span>
975
- <span class="cline-any cline-neutral">&nbsp;</span>
976
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import ts, {HeritageClause, ScriptTarget, VariableStatement} from 'typescript';</span>
977
- import {IDLBlob} from './IDLBlob';
978
- <span class="cstat-no" title="statement not covered" >import {</span>
979
- ClassObject,
980
- ClassObjectKind,
981
- FunctionArguments,
982
- FunctionArgumentType,
983
- FunctionDeclaration,
984
- FunctionObject,
985
- IndexedPropertyDeclaration,
986
- ParameterMode,
987
- PropsDeclaration,
988
- } from './declaration';
989
- <span class="cstat-no" title="statement not covered" >import {isUnionType} from "./utils";</span>
990
- &nbsp;
991
- interface DefinedPropertyCollector {
992
- properties: Set&lt;string&gt;;
993
- files: Set&lt;string&gt;;
994
- interfaces: Set&lt;string&gt;;
995
- }
996
- &nbsp;
997
- export interface UnionTypeCollector {
998
- types: Set&lt;ParameterType[]&gt;;
999
- }
1000
- &nbsp;
1001
- <span class="cstat-no" title="statement not covered" >export function <span class="fstat-no" title="function not covered" >a</span>nalyzer(</span>blob: IDLBlob, definedPropertyCollector: DefinedPropertyCollector, unionTypeCollector: UnionTypeCollector) {
1002
- const sourceFile = <span class="cstat-no" title="statement not covered" >ts.createSourceFile(blob.source, blob.raw, ScriptTarget.ES2020);</span>
1003
- <span class="cstat-no" title="statement not covered" > blob.objects = sourceFile.statements.map(<span class="fstat-no" title="function not covered" >statement </span>=&gt; <span class="cstat-no" title="statement not covered" >walkProgram(blob, statement, definedPropertyCollector, unionTypeCollector))</span>.filter(<span class="fstat-no" title="function not covered" >o </span>=&gt; {</span>
1004
- <span class="cstat-no" title="statement not covered" > return o instanceof ClassObject || o instanceof FunctionObject;</span>
1005
- }) as (FunctionObject | ClassObject)[];
1006
- }
1007
- &nbsp;
1008
- <span class="cstat-no" title="statement not covered" >export function <span class="fstat-no" title="function not covered" >b</span>uildClassRelationship(</span>) {
1009
- const globalClassMap = <span class="cstat-no" title="statement not covered" >ClassObject.globalClassMap;</span>
1010
- const globalClassRelationMap = <span class="cstat-no" title="statement not covered" >ClassObject.globalClassRelationMap;</span>
1011
- &nbsp;
1012
- <span class="cstat-no" title="statement not covered" > Object.values(globalClassMap).forEach(<span class="fstat-no" title="function not covered" >obj </span>=&gt; {</span>
1013
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (obj.parent) {</span>
1014
- <span class="cstat-no" title="statement not covered" > globalClassRelationMap[obj.parent] = globalClassRelationMap[obj.parent] || [];</span>
1015
- <span class="cstat-no" title="statement not covered" > globalClassRelationMap[obj.parent].push(obj.name);</span>
1016
- }
1017
- });
1018
- }
1019
- &nbsp;
1020
- function <span class="fstat-no" title="function not covered" >getInterfaceName(</span>statement: ts.Statement) {
1021
- <span class="cstat-no" title="statement not covered" > return (statement as ts.InterfaceDeclaration).name.escapedText;</span>
1022
- }
1023
- &nbsp;
1024
- function <span class="fstat-no" title="function not covered" >getHeritageType(</span>heritage: HeritageClause) {
1025
- let expression = <span class="cstat-no" title="statement not covered" >heritage.types[0].expression;</span>
1026
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (expression.kind === ts.SyntaxKind.Identifier) {</span>
1027
- <span class="cstat-no" title="statement not covered" > return (expression as ts.Identifier).escapedText;</span>
1028
- }
1029
- <span class="cstat-no" title="statement not covered" > return null;</span>
1030
- }
1031
- &nbsp;
1032
- function <span class="fstat-no" title="function not covered" >getMixins(</span>hertage: HeritageClause): string[] | null {
1033
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (hertage.types.length &lt;= 1) <span class="cstat-no" title="statement not covered" >return null;</span></span>
1034
- let mixins: string[] = <span class="cstat-no" title="statement not covered" >[];</span>
1035
- <span class="cstat-no" title="statement not covered" > hertage.types.slice(1).forEach(<span class="fstat-no" title="function not covered" >types </span>=&gt; {</span>
1036
- let expression = <span class="cstat-no" title="statement not covered" >types.expression;</span>
1037
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (expression.kind === ts.SyntaxKind.Identifier) {</span>
1038
- <span class="cstat-no" title="statement not covered" > mixins.push((expression as ts.Identifier).escapedText! as string);</span>
1039
- }
1040
- });
1041
- <span class="cstat-no" title="statement not covered" > return mixins;</span>
1042
- }
1043
- &nbsp;
1044
- function <span class="fstat-no" title="function not covered" >getPropName(</span>propName: ts.PropertyName, prop?: PropsDeclaration) {
1045
- <span class="cstat-no" title="statement not covered" > if (propName.kind == ts.SyntaxKind.Identifier) {</span>
1046
- <span class="cstat-no" title="statement not covered" > return propName.escapedText.toString();</span>
1047
- } else <span class="cstat-no" title="statement not covered" >if (propName.kind === ts.SyntaxKind.StringLiteral) {</span>
1048
- <span class="cstat-no" title="statement not covered" > return propName.text;</span>
1049
- } else <span class="cstat-no" title="statement not covered" >if (propName.kind === ts.SyntaxKind.NumericLiteral) {</span>
1050
- <span class="cstat-no" title="statement not covered" > return propName.text;</span>
1051
- // @ts-ignore
1052
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (propName.kind === ts.SyntaxKind.ComputedPropertyName &amp;&amp; propName.expression.kind === ts.SyntaxKind.PropertyAccessExpression) {</span>
1053
- <span class="cstat-no" title="statement not covered" > prop!.isSymbol = true;</span>
1054
- // @ts-ignore
1055
- let expression = <span class="cstat-no" title="statement not covered" >propName.expression;</span>
1056
- // @ts-ignore
1057
- <span class="cstat-no" title="statement not covered" > return `${expression.expression.text}_${expression.name.text}`;</span>
1058
- }
1059
- <span class="cstat-no" title="statement not covered" > throw new Error(`prop name: ${ts.SyntaxKind[propName.kind]} is not supported`);</span>
1060
- }
1061
- &nbsp;
1062
- function <span class="fstat-no" title="function not covered" >getParameterName(</span>name: ts.BindingName) : string {
1063
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (name.kind === ts.SyntaxKind.Identifier) {</span>
1064
- <span class="cstat-no" title="statement not covered" > return name.escapedText.toString();</span>
1065
- }
1066
- <span class="cstat-no" title="statement not covered" > return '';</span>
1067
- }
1068
- &nbsp;
1069
- export type ParameterBaseType = FunctionArgumentType | string;
1070
- export type ParameterType = {
1071
- isArray?: boolean;
1072
- value: ParameterType | ParameterType[] | ParameterBaseType;
1073
- };
1074
- &nbsp;
1075
- function <span class="fstat-no" title="function not covered" >getParameterBaseType(</span>type: ts.TypeNode, mode?: ParameterMode): ParameterBaseType {
1076
- <span class="cstat-no" title="statement not covered" > if (type.kind === ts.SyntaxKind.StringKeyword) {</span>
1077
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.dom_string;</span>
1078
- } else <span class="cstat-no" title="statement not covered" >if (type.kind === ts.SyntaxKind.NumberKeyword) {</span>
1079
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.double;</span>
1080
- } else <span class="cstat-no" title="statement not covered" >if (type.kind === ts.SyntaxKind.BooleanKeyword) {</span>
1081
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.boolean;</span>
1082
- } else <span class="cstat-no" title="statement not covered" >if (type.kind === ts.SyntaxKind.AnyKeyword) {</span>
1083
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.any;</span>
1084
- } else <span class="cstat-no" title="statement not covered" >if (type.kind === ts.SyntaxKind.ObjectKeyword) {</span>
1085
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.object;</span>
1086
- // @ts-ignore
1087
- } else <span class="cstat-no" title="statement not covered" >if (type.kind === ts.SyntaxKind.VoidKeyword) {</span>
1088
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.void;</span>
1089
- } else <span class="cstat-no" title="statement not covered" >if (type.kind === ts.SyntaxKind.NullKeyword) {</span>
1090
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.null;</span>
1091
- } else <span class="cstat-no" title="statement not covered" >if (type.kind === ts.SyntaxKind.UndefinedKeyword) {</span>
1092
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.undefined;</span>
1093
- } else <span class="cstat-no" title="statement not covered" >if (type.kind === ts.SyntaxKind.TypeReference) {</span>
1094
- let typeReference: ts.TypeReference = <span class="cstat-no" title="statement not covered" >type as unknown as ts.TypeReference;</span>
1095
- // @ts-ignore
1096
- let identifier = (<span class="cstat-no" title="statement not covered" >typeReference.typeName as ts.Identifier).text;</span>
1097
- <span class="cstat-no" title="statement not covered" > if (identifier === 'Function') {</span>
1098
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.function;</span>
1099
- } else <span class="cstat-no" title="statement not covered" >if (identifier === 'Promise') {</span>
1100
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.promise;</span>
1101
- } else <span class="cstat-no" title="statement not covered" >if (identifier === 'JSArrayProtoMethod') {</span>
1102
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.js_array_proto_methods;</span>
1103
- } else <span class="cstat-no" title="statement not covered" >if (identifier === 'int') {</span>
1104
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.int;</span>
1105
- } else <span class="cstat-no" title="statement not covered" >if (identifier === 'double') {</span>
1106
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.double;</span>
1107
- } else <span class="cstat-no" title="statement not covered" >if (identifier === 'NewObject') {</span>
1108
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (mode) <span class="cstat-no" title="statement not covered" >mode.newObject = true;</span></span>
1109
- let argument = <span class="cstat-no" title="statement not covered" >typeReference.typeArguments![0];</span>
1110
- // @ts-ignore
1111
- <span class="cstat-no" title="statement not covered" > return argument.typeName.text;</span>
1112
- } else <span class="cstat-no" title="statement not covered" >if (identifier === 'DartImpl') {</span>
1113
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (mode) <span class="cstat-no" title="statement not covered" >mode.dartImpl = true;</span></span>
1114
- let argument: ts.TypeNode = <span class="cstat-no" title="statement not covered" >typeReference.typeArguments![0] as unknown as ts.TypeNode;</span>
1115
- &nbsp;
1116
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (argument.kind == ts.SyntaxKind.TypeReference) {</span>
1117
- let typeReference: ts.TypeReference = <span class="cstat-no" title="statement not covered" >argument as unknown as ts.TypeReference;</span>
1118
- // @ts-ignore
1119
- let identifier = (<span class="cstat-no" title="statement not covered" >typeReference.typeName as ts.Identifier).text;</span>
1120
- &nbsp;
1121
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (identifier == 'DependentsOnLayout') {</span>
1122
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (mode) {</span>
1123
- <span class="cstat-no" title="statement not covered" > mode.layoutDependent = true;</span>
1124
- }
1125
- <span class="cstat-no" title="statement not covered" > argument = typeReference.typeArguments![0] as unknown as ts.TypeNode;</span>
1126
- }
1127
- }
1128
- &nbsp;
1129
- // @ts-ignore
1130
- <span class="cstat-no" title="statement not covered" > return getParameterBaseType(argument);</span>
1131
- } else <span class="cstat-no" title="statement not covered" >if (identifier == 'DependentsOnLayout') {</span>
1132
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (mode) <span class="cstat-no" title="statement not covered" >mode.layoutDependent = true;</span></span>
1133
- let argument: ts.TypeNode = <span class="cstat-no" title="statement not covered" >typeReference.typeArguments![0] as unknown as ts.TypeNode;</span>
1134
- <span class="cstat-no" title="statement not covered" > argument = typeReference.typeArguments![0] as unknown as ts.TypeNode;</span>
1135
- // @ts-ignore
1136
- <span class="cstat-no" title="statement not covered" > return getParameterBaseType(argument);</span>
1137
- } else <span class="cstat-no" title="statement not covered" >if (identifier === 'StaticMember') {</span>
1138
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (mode) <span class="cstat-no" title="statement not covered" >mode.static = true;</span></span>
1139
- let argument = <span class="cstat-no" title="statement not covered" >typeReference.typeArguments![0];</span>
1140
- // @ts-ignore
1141
- <span class="cstat-no" title="statement not covered" > return getParameterBaseType(argument);</span>
1142
- } else <span class="cstat-no" title="statement not covered" >if (identifier === 'StaticMethod') {</span>
1143
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (mode) <span class="cstat-no" title="statement not covered" >mode.staticMethod = true;</span></span>
1144
- let argument = <span class="cstat-no" title="statement not covered" >typeReference.typeArguments![0];</span>
1145
- // @ts-ignore
1146
- <span class="cstat-no" title="statement not covered" > return getParameterBaseType(argument);</span>
1147
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (identifier.indexOf('SupportAsync') &gt;= 0) {</span>
1148
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (mode) {</span>
1149
- <span class="cstat-no" title="statement not covered" > mode.supportAsync = true;</span>
1150
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (identifier === "SupportAsyncManual"){</span>
1151
- <span class="cstat-no" title="statement not covered" > mode.supportAsyncManual = true;</span>
1152
- }
1153
- }
1154
- let argument = <span class="cstat-no" title="statement not covered" >typeReference.typeArguments![0] as unknown as ts.TypeNode;</span>
1155
- <span class="cstat-no" title="statement not covered" > if (argument.kind == ts.SyntaxKind.TypeReference) {</span>
1156
- let typeReference: ts.TypeReference = <span class="cstat-no" title="statement not covered" >argument as unknown as ts.TypeReference;</span>
1157
- // @ts-ignore
1158
- let identifier = (<span class="cstat-no" title="statement not covered" >typeReference.typeName as ts.Identifier).text;</span>
1159
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (identifier == 'DartImpl') {</span>
1160
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (mode) {</span>
1161
- <span class="cstat-no" title="statement not covered" > mode.dartImpl = true;</span>
1162
- }
1163
- <span class="cstat-no" title="statement not covered" > argument = typeReference.typeArguments![0] as unknown as ts.TypeNode;</span>
1164
- }
1165
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (argument.kind == ts.SyntaxKind.ArrayType) {</span>
1166
- let elementType = (<span class="cstat-no" title="statement not covered" >argument as ts.ArrayTypeNode).elementType as ts.TypeReferenceNode;</span>
1167
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (mode) <span class="cstat-no" title="statement not covered" >mode.supportAsyncArrayValue = true;</span></span>
1168
- <span class="cstat-no" title="statement not covered" > return getParameterBaseType(elementType);</span>
1169
- }
1170
- &nbsp;
1171
- // @ts-ignore
1172
- <span class="cstat-no" title="statement not covered" > return getParameterBaseType(argument);</span>
1173
- }
1174
- &nbsp;
1175
- <span class="cstat-no" title="statement not covered" > return identifier;</span>
1176
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (type.kind === ts.SyntaxKind.LiteralType) {</span>
1177
- // @ts-ignore
1178
- <span class="cstat-no" title="statement not covered" > return getParameterBaseType((type as ts.LiteralTypeNode).literal, mode);</span>
1179
- }
1180
- <span class="cstat-no" title="statement not covered" > return FunctionArgumentType.any;</span>
1181
- }
1182
- &nbsp;
1183
- function <span class="fstat-no" title="function not covered" >getParameterType(</span>type: ts.TypeNode, unionTypeCollector: UnionTypeCollector, mode?: ParameterMode): ParameterType {
1184
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (type.kind === ts.SyntaxKind.ParenthesizedType) {</span>
1185
- let typeNode = <span class="cstat-no" title="statement not covered" >type as ts.ParenthesizedTypeNode;</span>
1186
- <span class="cstat-no" title="statement not covered" > return getParameterType(typeNode.type, unionTypeCollector, mode);</span>
1187
- }
1188
- &nbsp;
1189
- <span class="cstat-no" title="statement not covered" > if (type.kind == ts.SyntaxKind.ArrayType) {</span>
1190
- let arrayType = <span class="cstat-no" title="statement not covered" >type as unknown as ts.ArrayTypeNode;</span>
1191
- <span class="cstat-no" title="statement not covered" > return {</span>
1192
- isArray: true,
1193
- value: getParameterType(arrayType.elementType, unionTypeCollector, mode)
1194
- };
1195
- } else <span class="cstat-no" title="statement not covered" >if (type.kind === ts.SyntaxKind.UnionType) {</span>
1196
- let node = <span class="cstat-no" title="statement not covered" >type as unknown as ts.UnionType;</span>
1197
- let types = <span class="cstat-no" title="statement not covered" >node.types;</span>
1198
- let result = <span class="cstat-no" title="statement not covered" >{</span>
1199
- isArray: false,
1200
- value: types.map(<span class="fstat-no" title="function not covered" >type </span>=&gt; <span class="cstat-no" title="statement not covered" >getParameterType(type as unknown as ts.TypeNode, unionTypeCollector, mode))</span>
1201
- };
1202
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isUnionType(result)) {</span>
1203
- <span class="cstat-no" title="statement not covered" > unionTypeCollector.types.add(result.value);</span>
1204
- }
1205
- <span class="cstat-no" title="statement not covered" > return result;</span>
1206
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (type.kind === ts.SyntaxKind.TypeReference) {</span>
1207
- let typeReference: ts.TypeReference = <span class="cstat-no" title="statement not covered" >type as unknown as ts.TypeReference;</span>
1208
- // @ts-ignore
1209
- let identifier = (<span class="cstat-no" title="statement not covered" >typeReference.typeName as ts.Identifier).text;</span>
1210
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (identifier.indexOf('SupportAsync') &gt;= 0) {</span>
1211
- let argument = <span class="cstat-no" title="statement not covered" >typeReference.typeArguments![0] as unknown as ts.TypeNode;</span>
1212
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (argument.kind == ts.SyntaxKind.UnionType) {</span>
1213
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (mode) {</span>
1214
- <span class="cstat-no" title="statement not covered" > mode.supportAsync = true</span>
1215
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (identifier === 'SupportAsyncManual') {</span>
1216
- <span class="cstat-no" title="statement not covered" > mode.supportAsyncManual = true</span>
1217
- }
1218
- }
1219
- let node = <span class="cstat-no" title="statement not covered" >argument as unknown as ts.UnionType;</span>
1220
- let types = <span class="cstat-no" title="statement not covered" >node.types;</span>
1221
- let result = <span class="cstat-no" title="statement not covered" >{</span>
1222
- isArray: false,
1223
- value: types.map(<span class="fstat-no" title="function not covered" >type </span>=&gt; <span class="cstat-no" title="statement not covered" >getParameterType(type as unknown as ts.TypeNode, unionTypeCollector, mode))</span>
1224
- };
1225
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isUnionType(result)) {</span>
1226
- <span class="cstat-no" title="statement not covered" > unionTypeCollector.types.add(result.value);</span>
1227
- }
1228
- <span class="cstat-no" title="statement not covered" > return result;</span>
1229
- }
1230
- }
1231
- }
1232
- <span class="cstat-no" title="statement not covered" > return {</span>
1233
- isArray: false,
1234
- value: getParameterBaseType(type, mode)
1235
- };
1236
- }
1237
- &nbsp;
1238
- function <span class="fstat-no" title="function not covered" >paramsNodeToArguments(</span>parameter: ts.ParameterDeclaration, unionTypeCollector: UnionTypeCollector): FunctionArguments {
1239
- let args = <span class="cstat-no" title="statement not covered" >new FunctionArguments();</span>
1240
- <span class="cstat-no" title="statement not covered" > args.name = getParameterName(parameter.name);</span>
1241
- let typeMode = <span class="cstat-no" title="statement not covered" >new ParameterMode();</span>
1242
- <span class="cstat-no" title="statement not covered" > args.type = getParameterType(parameter.type!, unionTypeCollector, typeMode);</span>
1243
- <span class="cstat-no" title="statement not covered" > args.isDotDotDot = !!parameter.dotDotDotToken;</span>
1244
- <span class="cstat-no" title="statement not covered" > args.typeMode = typeMode;</span>
1245
- <span class="cstat-no" title="statement not covered" > args.required = !parameter.questionToken;</span>
1246
- <span class="cstat-no" title="statement not covered" > return args;</span>
1247
- }
1248
- &nbsp;
1249
- function <span class="fstat-no" title="function not covered" >isParamsReadOnly(</span>m: ts.PropertySignature): boolean {
1250
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!m.modifiers) <span class="cstat-no" title="statement not covered" >return false;</span></span>
1251
- <span class="cstat-no" title="statement not covered" > return m.modifiers.some(<span class="fstat-no" title="function not covered" >k </span>=&gt; <span class="cstat-no" title="statement not covered" >k.kind === ts.SyntaxKind.ReadonlyKeyword)</span>;</span>
1252
- }
1253
- &nbsp;
1254
- function <span class="fstat-no" title="function not covered" >walkProgram(</span>blob: IDLBlob, statement: ts.Statement, definedPropertyCollector: DefinedPropertyCollector, unionTypeCollector: UnionTypeCollector) {
1255
- <span class="cstat-no" title="statement not covered" > switch(statement.kind) {</span>
1256
- case ts.SyntaxKind.InterfaceDeclaration: {
1257
- let interfaceName = <span class="cstat-no" title="statement not covered" >getInterfaceName(statement) as string;</span>
1258
- let s = (<span class="cstat-no" title="statement not covered" >statement as ts.InterfaceDeclaration);</span>
1259
- let obj = <span class="cstat-no" title="statement not covered" >new ClassObject();</span>
1260
- let constructorDefined = <span class="cstat-no" title="statement not covered" >false;</span>
1261
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (s.heritageClauses) {</span>
1262
- let heritage = <span class="cstat-no" title="statement not covered" >s.heritageClauses[0];</span>
1263
- let heritageType = <span class="cstat-no" title="statement not covered" >getHeritageType(heritage);</span>
1264
- let mixins = <span class="cstat-no" title="statement not covered" >getMixins(heritage);</span>
1265
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (heritageType) <span class="cstat-no" title="statement not covered" >obj.parent = heritageType.toString();</span></span>
1266
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (mixins) <span class="cstat-no" title="statement not covered" >obj.mixinParent = mixins;</span></span>
1267
- }
1268
- &nbsp;
1269
- <span class="cstat-no" title="statement not covered" > obj.name = s.name.escapedText.toString();</span>
1270
- &nbsp;
1271
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (obj.kind === ClassObjectKind.interface) {</span>
1272
- <span class="cstat-no" title="statement not covered" > definedPropertyCollector.interfaces.add('QJS' + interfaceName);</span>
1273
- <span class="cstat-no" title="statement not covered" > definedPropertyCollector.files.add(blob.filename);</span>
1274
- <span class="cstat-no" title="statement not covered" > definedPropertyCollector.properties.add(interfaceName);</span>
1275
- }
1276
- &nbsp;
1277
- <span class="cstat-no" title="statement not covered" > s.members.forEach(<span class="fstat-no" title="function not covered" >member </span>=&gt; {</span>
1278
- <span class="cstat-no" title="statement not covered" > switch(member.kind) {</span>
1279
- case ts.SyntaxKind.PropertySignature: {
1280
- let prop = <span class="cstat-no" title="statement not covered" >new PropsDeclaration();</span>
1281
- let m = (<span class="cstat-no" title="statement not covered" >member as ts.PropertySignature);</span>
1282
- <span class="cstat-no" title="statement not covered" > prop.name = getPropName(m.name, prop);</span>
1283
- <span class="cstat-no" title="statement not covered" > prop.readonly = isParamsReadOnly(m);</span>
1284
- &nbsp;
1285
- <span class="cstat-no" title="statement not covered" > definedPropertyCollector.properties.add(prop.name);</span>
1286
- let propKind = <span class="cstat-no" title="statement not covered" >m.type;</span>
1287
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (propKind) {</span>
1288
- let mode = <span class="cstat-no" title="statement not covered" >new ParameterMode();</span>
1289
- <span class="cstat-no" title="statement not covered" > prop.type = getParameterType(propKind, unionTypeCollector, mode);</span>
1290
- <span class="cstat-no" title="statement not covered" > prop.typeMode = mode;</span>
1291
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (member.questionToken) {</span>
1292
- <span class="cstat-no" title="statement not covered" > prop.optional = true;</span>
1293
- }
1294
- <span class="cstat-no" title="statement not covered" > if (prop.type.value === FunctionArgumentType.function) {</span>
1295
- let f = (<span class="cstat-no" title="statement not covered" >m.type as ts.FunctionTypeNode);</span>
1296
- let functionProps = <span class="cstat-no" title="statement not covered" >prop as FunctionDeclaration;</span>
1297
- <span class="cstat-no" title="statement not covered" > functionProps.args = [];</span>
1298
- <span class="cstat-no" title="statement not covered" > f.parameters.forEach(<span class="fstat-no" title="function not covered" >params </span>=&gt; {</span>
1299
- let p = <span class="cstat-no" title="statement not covered" >paramsNodeToArguments(params, unionTypeCollector);</span>
1300
- <span class="cstat-no" title="statement not covered" > functionProps.args.push(p);</span>
1301
- });
1302
- <span class="cstat-no" title="statement not covered" > obj.methods.push(functionProps);</span>
1303
- } else {
1304
- <span class="cstat-no" title="statement not covered" > obj.props.push(prop);</span>
1305
- &nbsp;
1306
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (prop.typeMode.supportAsync) {</span>
1307
- // keep asyncProp supportAsync = true
1308
- let asyncProp = <span class="cstat-no" title="statement not covered" >Object.assign({}, prop);</span>
1309
- // set prop supportAsync = false
1310
- let syncMode = <span class="cstat-no" title="statement not covered" >Object.assign({}, mode);</span>
1311
- <span class="cstat-no" title="statement not covered" > syncMode.supportAsync = false;</span>
1312
- <span class="cstat-no" title="statement not covered" > mode.supportAsyncManual = false;</span>
1313
- <span class="cstat-no" title="statement not covered" > prop.typeMode = syncMode</span>
1314
- <span class="cstat-no" title="statement not covered" > asyncProp.name = asyncProp.name + '_async';</span>
1315
- <span class="cstat-no" title="statement not covered" > definedPropertyCollector.properties.add(asyncProp.name);</span>
1316
- <span class="cstat-no" title="statement not covered" > asyncProp.async_type = {</span>
1317
- isArray: false,
1318
- value: FunctionArgumentType.promise
1319
- };
1320
- <span class="cstat-no" title="statement not covered" > obj.props.push(asyncProp)</span>
1321
- }
1322
- &nbsp;
1323
- }
1324
- }
1325
- <span class="cstat-no" title="statement not covered" > break;</span>
1326
- }
1327
- case ts.SyntaxKind.MethodSignature: {
1328
- let m = (<span class="cstat-no" title="statement not covered" >member as ts.MethodSignature);</span>
1329
- let f = <span class="cstat-no" title="statement not covered" >new FunctionDeclaration();</span>
1330
- <span class="cstat-no" title="statement not covered" > f.name = getPropName(m.name);</span>
1331
- <span class="cstat-no" title="statement not covered" > f.args = [];</span>
1332
- <span class="cstat-no" title="statement not covered" > m.parameters.forEach(<span class="fstat-no" title="function not covered" >params </span>=&gt; {</span>
1333
- let p = <span class="cstat-no" title="statement not covered" >paramsNodeToArguments(params, unionTypeCollector);</span>
1334
- <span class="cstat-no" title="statement not covered" > f.args.push(p);</span>
1335
- });
1336
- <span class="cstat-no" title="statement not covered" > obj.methods.push(f);</span>
1337
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (m.type) {</span>
1338
- let mode = <span class="cstat-no" title="statement not covered" >new ParameterMode();</span>
1339
- <span class="cstat-no" title="statement not covered" > f.returnType = getParameterType(m.type, unionTypeCollector, mode);</span>
1340
- &nbsp;
1341
- // Override the default type for SupportAsync&lt;Type[]&gt; to support ArrayTypes;
1342
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (mode.supportAsyncArrayValue) {</span>
1343
- <span class="cstat-no" title="statement not covered" > f.returnType = {</span>
1344
- isArray: true,
1345
- value: f.returnType
1346
- };
1347
- }
1348
- &nbsp;
1349
- <span class="cstat-no" title="statement not covered" > f.returnTypeMode = mode;</span>
1350
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (f.returnTypeMode.staticMethod) {</span>
1351
- <span class="cstat-no" title="statement not covered" > obj.staticMethods.push(f);</span>
1352
- }
1353
- }
1354
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (f.returnTypeMode?.supportAsync) {</span>
1355
- // keep asyncFunc supportAsync = true
1356
- let asyncFunc = <span class="cstat-no" title="statement not covered" >Object.assign({}, f);</span>
1357
- let mode = <span class="cstat-no" title="statement not covered" >Object.assign({}, f.returnTypeMode);</span>
1358
- <span class="cstat-no" title="statement not covered" > mode.supportAsync = false;</span>
1359
- <span class="cstat-no" title="statement not covered" > mode.supportAsyncManual = false;</span>
1360
- <span class="cstat-no" title="statement not covered" > f.returnTypeMode = mode</span>
1361
- <span class="cstat-no" title="statement not covered" > asyncFunc.name = getPropName(m.name) + '_async';</span>
1362
- <span class="cstat-no" title="statement not covered" > asyncFunc.args = [];</span>
1363
- <span class="cstat-no" title="statement not covered" > m.parameters.forEach(<span class="fstat-no" title="function not covered" >params </span>=&gt; {</span>
1364
- let p = <span class="cstat-no" title="statement not covered" >paramsNodeToArguments(params, unionTypeCollector);</span>
1365
- <span class="cstat-no" title="statement not covered" > asyncFunc.args.push(p);</span>
1366
- });
1367
- <span class="cstat-no" title="statement not covered" > asyncFunc.async_returnType = {</span>
1368
- isArray: false,
1369
- value: FunctionArgumentType.promise
1370
- }
1371
- &nbsp;
1372
- <span class="cstat-no" title="statement not covered" > obj.methods.push(asyncFunc);</span>
1373
- }
1374
- <span class="cstat-no" title="statement not covered" > break;</span>
1375
- }
1376
- case ts.SyntaxKind.IndexSignature: {
1377
- let m = (<span class="cstat-no" title="statement not covered" >member as ts.IndexSignatureDeclaration);</span>
1378
- let prop = <span class="cstat-no" title="statement not covered" >new IndexedPropertyDeclaration();</span>
1379
- let modifier = <span class="cstat-no" title="statement not covered" >m.modifiers;</span>
1380
- <span class="cstat-no" title="statement not covered" > prop.readonly = !!(modifier &amp;&amp; modifier[0].kind == ts.SyntaxKind.ReadonlyKeyword);</span>
1381
- &nbsp;
1382
- let params = <span class="cstat-no" title="statement not covered" >m.parameters;</span>
1383
- <span class="cstat-no" title="statement not covered" > prop.indexKeyType = params[0].type!.kind === ts.SyntaxKind.NumberKeyword ? 'number' : 'string';</span>
1384
- &nbsp;
1385
- let mode = <span class="cstat-no" title="statement not covered" >new ParameterMode();</span>
1386
- <span class="cstat-no" title="statement not covered" > prop.type = getParameterType(m.type, unionTypeCollector, mode);</span>
1387
- <span class="cstat-no" title="statement not covered" > prop.typeMode = mode;</span>
1388
- <span class="cstat-no" title="statement not covered" > obj.indexedProp = prop;</span>
1389
- <span class="cstat-no" title="statement not covered" > break;</span>
1390
- }
1391
- case ts.SyntaxKind.ConstructSignature: {
1392
- let m = (<span class="cstat-no" title="statement not covered" >member as unknown as ts.ConstructorTypeNode);</span>
1393
- let c = <span class="cstat-no" title="statement not covered" >new FunctionDeclaration();</span>
1394
- <span class="cstat-no" title="statement not covered" > c.name = 'constructor';</span>
1395
- <span class="cstat-no" title="statement not covered" > c.args = [];</span>
1396
- <span class="cstat-no" title="statement not covered" > m.parameters.forEach(<span class="fstat-no" title="function not covered" >params </span>=&gt; {</span>
1397
- let p = <span class="cstat-no" title="statement not covered" >paramsNodeToArguments(params, unionTypeCollector);</span>
1398
- <span class="cstat-no" title="statement not covered" > c.args.push(p);</span>
1399
- });
1400
- <span class="cstat-no" title="statement not covered" > c.returnType = getParameterType(m.type, unionTypeCollector);</span>
1401
- <span class="cstat-no" title="statement not covered" > obj.construct = c;</span>
1402
- <span class="cstat-no" title="statement not covered" > constructorDefined = true;</span>
1403
- <span class="cstat-no" title="statement not covered" > break;</span>
1404
- }
1405
- }
1406
- });
1407
- &nbsp;
1408
- <span class="cstat-no" title="statement not covered" > ClassObject.globalClassMap[interfaceName] = obj;</span>
1409
- &nbsp;
1410
- <span class="cstat-no" title="statement not covered" > return obj;</span>
1411
- }
1412
- case ts.SyntaxKind.VariableStatement: {
1413
- let declaration = (<span class="cstat-no" title="statement not covered" >statement as VariableStatement).declarationList.declarations[0];</span>
1414
- let methodName = (<span class="cstat-no" title="statement not covered" >declaration.name as ts.Identifier).text;</span>
1415
- let type = <span class="cstat-no" title="statement not covered" >declaration.type;</span>
1416
- let functionObject = <span class="cstat-no" title="statement not covered" >new FunctionObject();</span>
1417
- &nbsp;
1418
- <span class="cstat-no" title="statement not covered" > functionObject.declare = new FunctionDeclaration();</span>
1419
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (type?.kind == ts.SyntaxKind.FunctionType) {</span>
1420
- <span class="cstat-no" title="statement not covered" > functionObject.declare.args = (type as ts.FunctionTypeNode).parameters.map(<span class="fstat-no" title="function not covered" >param </span>=&gt; <span class="cstat-no" title="statement not covered" >paramsNodeToArguments(param, unionTypeCollector))</span>;</span>
1421
- <span class="cstat-no" title="statement not covered" > functionObject.declare.returnType = getParameterType((type as ts.FunctionTypeNode).type, unionTypeCollector);</span>
1422
- <span class="cstat-no" title="statement not covered" > functionObject.declare.name = methodName.toString();</span>
1423
- }
1424
- &nbsp;
1425
- <span class="cstat-no" title="statement not covered" > return functionObject;</span>
1426
- }
1427
- }
1428
- &nbsp;
1429
- <span class="cstat-no" title="statement not covered" > return null;</span>
1430
- }
1431
- &nbsp;</pre></td></tr></table></pre>
1432
-
1433
- <div class='push'></div><!-- for sticky footer -->
1434
- </div><!-- /wrapper -->
1435
- <div class='footer quiet pad2 space-top1 center small'>
1436
- Code coverage generated by
1437
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1438
- at 2025-06-15T19:54:25.468Z
1439
- </div>
1440
- <script src="prettify.js"></script>
1441
- <script>
1442
- window.onload = function () {
1443
- prettyPrint();
1444
- };
1445
- </script>
1446
- <script src="sorter.js"></script>
1447
- <script src="block-navigation.js"></script>
1448
- </body>
1449
- </html>
1450
-