@peter.naydenov/cuts 2.1.3 → 2.1.4
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.
- package/Changelog.md +12 -0
- package/coverage/lcov-report/index.html +29 -29
- package/coverage/lcov-report/src/findInstructions.js.html +29 -29
- package/coverage/lcov-report/src/index.html +23 -23
- package/coverage/lcov-report/src/main.js.html +64 -43
- package/coverage/lcov-report/src/methods/hide.js.html +106 -67
- package/coverage/lcov-report/src/methods/index.html +31 -31
- package/coverage/lcov-report/src/methods/jump.js.html +26 -11
- package/coverage/lcov-report/src/methods/jumpBack.js.html +5 -5
- package/coverage/lcov-report/src/methods/jumpsReset.js.html +2 -2
- package/coverage/lcov-report/src/methods/listShortcuts.js.html +5 -5
- package/coverage/lcov-report/src/methods/setScenes.js.html +16 -16
- package/coverage/lcov-report/src/methods/show.js.html +124 -67
- package/coverage/lcov-report/src/setInstruction.js.html +7 -7
- package/coverage/lcov.info +327 -306
- package/package.json +1 -1
- package/src/methods/hide.js +37 -37
- package/src/methods/jump.js +7 -2
- package/src/methods/setScenes.js +1 -1
- package/src/methods/show.js +12 -2
- package/test/02-cuts.test.js +270 -1
- package/vitest.config.js +1 -1
|
@@ -174,12 +174,12 @@
|
|
|
174
174
|
<span class="cline-any cline-neutral"> </span>
|
|
175
175
|
<span class="cline-any cline-neutral"> </span>
|
|
176
176
|
<span class="cline-any cline-neutral"> </span>
|
|
177
|
-
<span class="cline-any cline-yes">
|
|
178
|
-
<span class="cline-any cline-yes">
|
|
179
|
-
<span class="cline-any cline-yes">
|
|
180
|
-
<span class="cline-any cline-yes">
|
|
181
|
-
<span class="cline-any cline-yes">
|
|
182
|
-
<span class="cline-any cline-yes">
|
|
177
|
+
<span class="cline-any cline-yes">33x</span>
|
|
178
|
+
<span class="cline-any cline-yes">32x</span>
|
|
179
|
+
<span class="cline-any cline-yes">32x</span>
|
|
180
|
+
<span class="cline-any cline-yes">59x</span>
|
|
181
|
+
<span class="cline-any cline-yes">59x</span>
|
|
182
|
+
<span class="cline-any cline-yes">59x</span>
|
|
183
183
|
<span class="cline-any cline-yes">1x</span>
|
|
184
184
|
<span class="cline-any cline-neutral"> </span>
|
|
185
185
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
<span class="cline-any cline-neutral"> </span>
|
|
188
188
|
<span class="cline-any cline-yes">1x</span>
|
|
189
189
|
<span class="cline-any cline-neutral"> </span>
|
|
190
|
-
<span class="cline-any cline-yes">
|
|
190
|
+
<span class="cline-any cline-yes">58x</span>
|
|
191
191
|
<span class="cline-any cline-yes">1x</span>
|
|
192
192
|
<span class="cline-any cline-neutral"> </span>
|
|
193
193
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -195,17 +195,17 @@
|
|
|
195
195
|
<span class="cline-any cline-neutral"> </span>
|
|
196
196
|
<span class="cline-any cline-yes">1x</span>
|
|
197
197
|
<span class="cline-any cline-neutral"> </span>
|
|
198
|
-
<span class="cline-any cline-yes">
|
|
199
|
-
<span class="cline-any cline-yes">
|
|
200
|
-
<span class="cline-any cline-yes">
|
|
198
|
+
<span class="cline-any cline-yes">57x</span>
|
|
199
|
+
<span class="cline-any cline-yes">57x</span>
|
|
200
|
+
<span class="cline-any cline-yes">57x</span>
|
|
201
201
|
<span class="cline-any cline-neutral"> </span>
|
|
202
202
|
<span class="cline-any cline-neutral"> </span>
|
|
203
|
-
<span class="cline-any cline-yes">
|
|
204
|
-
<span class="cline-any cline-yes">
|
|
203
|
+
<span class="cline-any cline-yes">57x</span>
|
|
204
|
+
<span class="cline-any cline-yes">57x</span>
|
|
205
205
|
<span class="cline-any cline-neutral"> </span>
|
|
206
206
|
<span class="cline-any cline-neutral"> </span>
|
|
207
|
-
<span class="cline-any cline-yes">
|
|
208
|
-
<span class="cline-any cline-yes">
|
|
207
|
+
<span class="cline-any cline-yes">57x</span>
|
|
208
|
+
<span class="cline-any cline-yes">57x</span>
|
|
209
209
|
<span class="cline-any cline-neutral"> </span>
|
|
210
210
|
<span class="cline-any cline-neutral"> </span>
|
|
211
211
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
/**
|
|
226
226
|
* @typedef {Object} SceneObject
|
|
227
227
|
* @property {function({task: AskObject, dependencies: *}): void} show - load interface and prerequisites for the scene;
|
|
228
|
-
* @property {function():
|
|
228
|
+
* @property {function({dependencies: *, done: function}):void} [afterShow] - run after the scene is shown. Optional. Fire-and-forget - its return value is not used, and it cannot cancel or affect the already-completed 'show';
|
|
229
229
|
* @property {function({task: AskObject, dependencies: *}): void} hide - Reverse the settings from 'show';
|
|
230
230
|
* @property {function():void} [beforeHide] - Run before scene is hidden. Optional;
|
|
231
231
|
* @property {Array.<string>} [parents] - list of parent scene names.
|
|
@@ -298,7 +298,7 @@ export default setScenes
|
|
|
298
298
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
299
299
|
Code coverage generated by
|
|
300
300
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
301
|
-
at 2026-
|
|
301
|
+
at 2026-07-09T05:05:03.811Z
|
|
302
302
|
</div>
|
|
303
303
|
<script src="../../prettify.js"></script>
|
|
304
304
|
<script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>65/65</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">94.73% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>36/38</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>59/59</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -190,7 +190,26 @@
|
|
|
190
190
|
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
191
|
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
192
|
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
-
<a name='L128'></a><a href='#L128'>128</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
194
213
|
<span class="cline-any cline-neutral"> </span>
|
|
195
214
|
<span class="cline-any cline-neutral"> </span>
|
|
196
215
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -207,62 +226,72 @@
|
|
|
207
226
|
<span class="cline-any cline-neutral"> </span>
|
|
208
227
|
<span class="cline-any cline-neutral"> </span>
|
|
209
228
|
<span class="cline-any cline-neutral"> </span>
|
|
210
|
-
<span class="cline-any cline-yes">
|
|
211
|
-
<span class="cline-any cline-yes">
|
|
212
|
-
<span class="cline-any cline-yes">
|
|
213
|
-
<span class="cline-any cline-yes">
|
|
214
|
-
<span class="cline-any cline-yes">
|
|
229
|
+
<span class="cline-any cline-yes">57x</span>
|
|
230
|
+
<span class="cline-any cline-yes">57x</span>
|
|
231
|
+
<span class="cline-any cline-yes">57x</span>
|
|
232
|
+
<span class="cline-any cline-yes">57x</span>
|
|
233
|
+
<span class="cline-any cline-yes">57x</span>
|
|
215
234
|
<span class="cline-any cline-neutral"> </span>
|
|
216
235
|
<span class="cline-any cline-neutral"> </span>
|
|
217
|
-
<span class="cline-any cline-yes">
|
|
218
|
-
<span class="cline-any cline-yes">
|
|
236
|
+
<span class="cline-any cline-yes">57x</span>
|
|
237
|
+
<span class="cline-any cline-yes">3x</span>
|
|
219
238
|
<span class="cline-any cline-neutral"> </span>
|
|
220
239
|
<span class="cline-any cline-neutral"> </span>
|
|
221
|
-
<span class="cline-any cline-yes">
|
|
240
|
+
<span class="cline-any cline-yes">3x</span>
|
|
222
241
|
<span class="cline-any cline-neutral"> </span>
|
|
223
|
-
<span class="cline-any cline-yes">
|
|
242
|
+
<span class="cline-any cline-yes">54x</span>
|
|
224
243
|
<span class="cline-any cline-neutral"> </span>
|
|
225
244
|
<span class="cline-any cline-neutral"> </span>
|
|
226
|
-
<span class="cline-any cline-yes">
|
|
227
|
-
<span class="cline-any cline-yes">
|
|
245
|
+
<span class="cline-any cline-yes">57x</span>
|
|
246
|
+
<span class="cline-any cline-yes">57x</span>
|
|
228
247
|
<span class="cline-any cline-neutral"> </span>
|
|
229
248
|
<span class="cline-any cline-neutral"> </span>
|
|
230
|
-
<span class="cline-any cline-yes">
|
|
231
|
-
<span class="cline-any cline-yes">
|
|
249
|
+
<span class="cline-any cline-yes">2x</span>
|
|
250
|
+
<span class="cline-any cline-yes">2x</span>
|
|
232
251
|
<span class="cline-any cline-neutral"> </span>
|
|
233
252
|
<span class="cline-any cline-neutral"> </span>
|
|
234
|
-
<span class="cline-any cline-yes">
|
|
235
|
-
<span class="cline-any cline-yes">
|
|
253
|
+
<span class="cline-any cline-yes">55x</span>
|
|
254
|
+
<span class="cline-any cline-yes">3x</span>
|
|
236
255
|
<span class="cline-any cline-neutral"> </span>
|
|
237
256
|
<span class="cline-any cline-neutral"> </span>
|
|
238
257
|
<span class="cline-any cline-neutral"> </span>
|
|
239
258
|
<span class="cline-any cline-neutral"> </span>
|
|
240
|
-
<span class="cline-any cline-yes">
|
|
241
|
-
<span class="cline-any cline-yes">
|
|
259
|
+
<span class="cline-any cline-yes">3x</span>
|
|
260
|
+
<span class="cline-any cline-yes">3x</span>
|
|
242
261
|
<span class="cline-any cline-neutral"> </span>
|
|
243
262
|
<span class="cline-any cline-neutral"> </span>
|
|
244
|
-
<span class="cline-any cline-yes">
|
|
263
|
+
<span class="cline-any cline-yes">52x</span>
|
|
245
264
|
<span class="cline-any cline-neutral"> </span>
|
|
246
|
-
<span class="cline-any cline-yes">
|
|
247
|
-
<span class="cline-any cline-yes">
|
|
248
|
-
<span class="cline-any cline-yes">1x</span>
|
|
249
|
-
<span class="cline-any cline-yes">1x</span>
|
|
250
|
-
<span class="cline-any cline-yes">1x</span>
|
|
265
|
+
<span class="cline-any cline-yes">2x</span>
|
|
266
|
+
<span class="cline-any cline-yes">2x</span>
|
|
251
267
|
<span class="cline-any cline-neutral"> </span>
|
|
252
268
|
<span class="cline-any cline-neutral"> </span>
|
|
253
|
-
<span class="cline-any cline-yes">
|
|
269
|
+
<span class="cline-any cline-yes">2x</span>
|
|
270
|
+
<span class="cline-any cline-yes">2x</span>
|
|
271
|
+
<span class="cline-any cline-yes">2x</span>
|
|
272
|
+
<span class="cline-any cline-yes">2x</span>
|
|
254
273
|
<span class="cline-any cline-neutral"> </span>
|
|
255
|
-
<span class="cline-any cline-
|
|
256
|
-
<span class="cline-any cline-yes">
|
|
257
|
-
<span class="cline-any cline-
|
|
258
|
-
<span class="cline-any cline-yes">
|
|
259
|
-
<span class="cline-any cline-
|
|
260
|
-
<span class="cline-any cline-yes">
|
|
274
|
+
<span class="cline-any cline-neutral"> </span>
|
|
275
|
+
<span class="cline-any cline-yes">50x</span>
|
|
276
|
+
<span class="cline-any cline-neutral"> </span>
|
|
277
|
+
<span class="cline-any cline-yes">50x</span>
|
|
278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
279
|
+
<span class="cline-any cline-yes">50x</span>
|
|
280
|
+
<span class="cline-any cline-yes">9x</span>
|
|
281
|
+
<span class="cline-any cline-yes">9x</span>
|
|
261
282
|
<span class="cline-any cline-neutral"> </span>
|
|
262
283
|
<span class="cline-any cline-neutral"> </span>
|
|
263
|
-
<span class="cline-any cline-yes">18x</span>
|
|
264
284
|
<span class="cline-any cline-neutral"> </span>
|
|
265
|
-
<span class="cline-any cline-
|
|
285
|
+
<span class="cline-any cline-neutral"> </span>
|
|
286
|
+
<span class="cline-any cline-yes">9x</span>
|
|
287
|
+
<span class="cline-any cline-yes">9x</span>
|
|
288
|
+
<span class="cline-any cline-yes">9x</span>
|
|
289
|
+
<span class="cline-any cline-yes">9x</span>
|
|
290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
292
|
+
<span class="cline-any cline-yes">41x</span>
|
|
293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-yes">57x</span>
|
|
266
295
|
<span class="cline-any cline-yes">1x</span>
|
|
267
296
|
<span class="cline-any cline-neutral"> </span>
|
|
268
297
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -273,43 +302,52 @@
|
|
|
273
302
|
<span class="cline-any cline-neutral"> </span>
|
|
274
303
|
<span class="cline-any cline-neutral"> </span>
|
|
275
304
|
<span class="cline-any cline-neutral"> </span>
|
|
276
|
-
<span class="cline-any cline-yes">
|
|
305
|
+
<span class="cline-any cline-yes">62x</span>
|
|
306
|
+
<span class="cline-any cline-yes">44x</span>
|
|
307
|
+
<span class="cline-any cline-yes">44x</span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-neutral"> </span>
|
|
310
|
+
<span class="cline-any cline-neutral"> </span>
|
|
311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
277
312
|
<span class="cline-any cline-yes">18x</span>
|
|
313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
278
316
|
<span class="cline-any cline-yes">18x</span>
|
|
279
317
|
<span class="cline-any cline-neutral"> </span>
|
|
318
|
+
<span class="cline-any cline-yes">62x</span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
280
320
|
<span class="cline-any cline-neutral"> </span>
|
|
281
|
-
<span class="cline-any cline-yes">9x</span>
|
|
282
|
-
<span class="cline-any cline-yes">9x</span>
|
|
283
321
|
<span class="cline-any cline-neutral"> </span>
|
|
284
|
-
<span class="cline-any cline-yes">27x</span>
|
|
285
322
|
<span class="cline-any cline-neutral"> </span>
|
|
286
323
|
<span class="cline-any cline-neutral"> </span>
|
|
287
|
-
<span class="cline-any cline-yes">17x</span>
|
|
288
324
|
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-yes">
|
|
290
|
-
<span class="cline-any cline-yes">
|
|
325
|
+
<span class="cline-any cline-yes">40x</span>
|
|
326
|
+
<span class="cline-any cline-yes">40x</span>
|
|
291
327
|
<span class="cline-any cline-neutral"> </span>
|
|
292
328
|
<span class="cline-any cline-neutral"> </span>
|
|
293
|
-
<span class="cline-any cline-yes">
|
|
294
|
-
<span class="cline-any cline-yes">
|
|
295
|
-
<span class="cline-any cline-yes">
|
|
329
|
+
<span class="cline-any cline-yes">40x</span>
|
|
330
|
+
<span class="cline-any cline-yes">62x</span>
|
|
331
|
+
<span class="cline-any cline-yes">62x</span>
|
|
296
332
|
<span class="cline-any cline-neutral"> </span>
|
|
297
333
|
<span class="cline-any cline-neutral"> </span>
|
|
298
334
|
<span class="cline-any cline-neutral"> </span>
|
|
299
|
-
<span class="cline-any cline-yes">
|
|
335
|
+
<span class="cline-any cline-yes">40x</span>
|
|
300
336
|
<span class="cline-any cline-neutral"> </span>
|
|
301
|
-
<span class="cline-any cline-yes">
|
|
302
|
-
<span class="cline-any cline-yes">
|
|
303
|
-
<span class="cline-any cline-yes">
|
|
304
|
-
<span class="cline-any cline-yes">17x</span>
|
|
305
|
-
<span class="cline-any cline-yes">17x</span>
|
|
306
|
-
<span class="cline-any cline-yes">17x</span>
|
|
307
|
-
<span class="cline-any cline-yes">17x</span>
|
|
337
|
+
<span class="cline-any cline-yes">40x</span>
|
|
338
|
+
<span class="cline-any cline-yes">40x</span>
|
|
339
|
+
<span class="cline-any cline-yes">40x</span>
|
|
308
340
|
<span class="cline-any cline-neutral"> </span>
|
|
309
341
|
<span class="cline-any cline-neutral"> </span>
|
|
310
|
-
<span class="cline-any cline-yes">
|
|
342
|
+
<span class="cline-any cline-yes">40x</span>
|
|
343
|
+
<span class="cline-any cline-yes">40x</span>
|
|
344
|
+
<span class="cline-any cline-yes">40x</span>
|
|
345
|
+
<span class="cline-any cline-yes">40x</span>
|
|
311
346
|
<span class="cline-any cline-neutral"> </span>
|
|
312
|
-
<span class="cline-any cline-
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-yes">57x</span>
|
|
349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
350
|
+
<span class="cline-any cline-yes">33x</span>
|
|
313
351
|
<span class="cline-any cline-neutral"> </span>
|
|
314
352
|
<span class="cline-any cline-neutral"> </span>
|
|
315
353
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -372,18 +410,28 @@ function show ( dependencies, state ) {
|
|
|
372
410
|
// Executes only once when the scene manager is started
|
|
373
411
|
state.opened = true
|
|
374
412
|
state.currentScene = requestedScene
|
|
413
|
+
// The server-rendered scene's ancestors are assumed already rendered too -
|
|
414
|
+
// record them, or navigating away later won't know to hide them.
|
|
415
|
+
state.currentParents = scenes[requestedScene].parents ? [ ...scenes[requestedScene].parents ] : <span class="branch-1 cbranch-no" title="branch not covered" >[]</span>
|
|
375
416
|
shortcutMngr.changeContext ( requestedScene )
|
|
376
417
|
showTask.done ()
|
|
377
418
|
return showTask.promise
|
|
378
419
|
}
|
|
379
420
|
|
|
380
421
|
const { show, parents=[] } = scenes[requestedScene];
|
|
381
|
-
|
|
422
|
+
|
|
423
|
+
if ( !state.currentParents ) state.currentParents = []
|
|
424
|
+
|
|
382
425
|
if ( parents[0] === '*' ) {
|
|
383
426
|
const overlayTask = setInstruction(show, ...args)()
|
|
384
427
|
overlayTask.then ( () => showTask.done () )
|
|
385
|
-
|
|
428
|
+
// Only remember a real underlying scene - pushing 'null' as a placeholder
|
|
429
|
+
// makes later navigation treat it as a scene name to hide, and crash.
|
|
430
|
+
// Re-showing the SAME overlay that's already current must not push it onto
|
|
431
|
+
// its own ancestor chain either, or hide() later climbs back onto itself.
|
|
432
|
+
if ( state.currentScene && state.currentScene !== requestedScene ) state.currentParents.push ( state.currentScene )
|
|
386
433
|
state.currentScene = requestedScene
|
|
434
|
+
shortcutMngr.changeContext ( requestedScene ) // Activate the overlay scene's own shortcuts
|
|
387
435
|
return showTask.promise
|
|
388
436
|
}
|
|
389
437
|
|
|
@@ -405,15 +453,22 @@ function show ( dependencies, state ) {
|
|
|
405
453
|
state.currentScene = name
|
|
406
454
|
}
|
|
407
455
|
else {
|
|
408
|
-
|
|
456
|
+
// Wildcard overlays aren't climbing their own declared parents ('*' isn't a
|
|
457
|
+
// real scene) - they climb back to whatever scene they were shown on top of.
|
|
458
|
+
let el = ( scenes[name].parents[0] === '*' )
|
|
459
|
+
? state.currentParents.pop ()
|
|
460
|
+
: scenes[name].parents.at ( -1 )
|
|
461
|
+
;
|
|
409
462
|
state.currentScene = el
|
|
410
463
|
}
|
|
411
464
|
return scenes[name][action]
|
|
412
465
|
} // getStep func.
|
|
413
466
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
467
|
+
const
|
|
468
|
+
// Snapshot - findInstructions is a lazy generator, and getStep (in the loop below)
|
|
469
|
+
// mutates state.currentParents in place; without a copy, that mutation corrupts
|
|
470
|
+
// the generator's still-pending reads of the very array it was given.
|
|
471
|
+
g = findInstructions ( state.currentScene, [ ...state.currentParents ], requestedScene, parents )
|
|
417
472
|
, instructions = []
|
|
418
473
|
;
|
|
419
474
|
|
|
@@ -428,9 +483,11 @@ function show ( dependencies, state ) {
|
|
|
428
483
|
goingTask.onComplete ( () => {
|
|
429
484
|
state.opened = true
|
|
430
485
|
state.currentScene = requestedScene
|
|
431
|
-
|
|
486
|
+
// Copy - never alias state.currentParents to a scene's own 'parents' array,
|
|
487
|
+
// or later mutations (eg. the wildcard-overlay push above) corrupt the scene definition.
|
|
488
|
+
state.currentParents = scenes[requestedScene].parents ? [...scenes[requestedScene].parents] : <span class="branch-1 cbranch-no" title="branch not covered" >null</span>
|
|
432
489
|
shortcutMngr.changeContext ( requestedScene )
|
|
433
|
-
|
|
490
|
+
if ( typeof scenes[requestedScene].afterShow === 'function' ) scenes[requestedScene].afterShow ({ dependencies: shortcutMngr.getDependencies(), done: <span class="fstat-no" title="function not covered" >()</span> => {} })
|
|
434
491
|
showTask.done ()
|
|
435
492
|
})
|
|
436
493
|
}) // unloadTask onComplete
|
|
@@ -451,7 +508,7 @@ export default show
|
|
|
451
508
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
452
509
|
Code coverage generated by
|
|
453
510
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
454
|
-
at 2026-
|
|
511
|
+
at 2026-07-09T05:05:03.811Z
|
|
455
512
|
</div>
|
|
456
513
|
<script src="../../prettify.js"></script>
|
|
457
514
|
<script>
|
|
@@ -97,12 +97,12 @@
|
|
|
97
97
|
<span class="cline-any cline-neutral"> </span>
|
|
98
98
|
<span class="cline-any cline-neutral"> </span>
|
|
99
99
|
<span class="cline-any cline-neutral"> </span>
|
|
100
|
-
<span class="cline-any cline-yes">
|
|
101
|
-
<span class="cline-any cline-yes">
|
|
102
|
-
<span class="cline-any cline-yes">
|
|
103
|
-
<span class="cline-any cline-yes">
|
|
104
|
-
<span class="cline-any cline-yes">
|
|
105
|
-
<span class="cline-any cline-yes">
|
|
100
|
+
<span class="cline-any cline-yes">33x</span>
|
|
101
|
+
<span class="cline-any cline-yes">80x</span>
|
|
102
|
+
<span class="cline-any cline-yes">80x</span>
|
|
103
|
+
<span class="cline-any cline-yes">80x</span>
|
|
104
|
+
<span class="cline-any cline-yes">80x</span>
|
|
105
|
+
<span class="cline-any cline-yes">80x</span>
|
|
106
106
|
<span class="cline-any cline-neutral"> </span>
|
|
107
107
|
<span class="cline-any cline-neutral"> </span>
|
|
108
108
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -142,7 +142,7 @@ export default setInstruction
|
|
|
142
142
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
143
143
|
Code coverage generated by
|
|
144
144
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
145
|
-
at 2026-
|
|
145
|
+
at 2026-07-09T05:05:03.811Z
|
|
146
146
|
</div>
|
|
147
147
|
<script src="../prettify.js"></script>
|
|
148
148
|
<script>
|