ember-source 6.0.0-alpha.9 → 6.0.0

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.
@@ -1,1521 +1,168 @@
1
- import '../util/index.js';
2
- import { Op, MachineOp } from '../vm/index.js';
1
+ import { Op } from '../vm/index.js';
3
2
 
4
3
  /* This file is generated by build/debug.js */
5
-
6
4
  function opcodeMetadata(op, isMachine) {
7
- let value = isMachine ? MACHINE_METADATA[op] : METADATA[op];
8
- return value || null;
5
+ return null;
9
6
  }
10
- const METADATA = new Array(Op.Size).fill(null);
11
- const MACHINE_METADATA = new Array(Op.Size).fill(null);
12
- MACHINE_METADATA[MachineOp.PushFrame] = {
13
- name: 'PushFrame',
14
- mnemonic: 'pushf',
15
- before: null,
16
- stackChange: 2,
17
- ops: [],
18
- operands: 0,
19
- check: true
20
- };
21
- MACHINE_METADATA[MachineOp.PopFrame] = {
22
- name: 'PopFrame',
23
- mnemonic: 'popf',
24
- before: null,
25
- stackChange: -2,
26
- ops: [],
27
- operands: 0,
28
- check: false
29
- };
30
- MACHINE_METADATA[MachineOp.InvokeVirtual] = {
31
- name: 'InvokeVirtual',
32
- mnemonic: 'vcall',
33
- before: null,
34
- stackChange: -1,
35
- ops: [],
36
- operands: 0,
37
- check: true
38
- };
39
- MACHINE_METADATA[MachineOp.InvokeStatic] = {
40
- name: 'InvokeStatic',
41
- mnemonic: 'scall',
42
- before: null,
43
- stackChange: 0,
44
- ops: [{
45
- name: 'offset',
46
- type: 'u32'
47
- }],
48
- operands: 1,
49
- check: true
50
- };
51
- MACHINE_METADATA[MachineOp.Jump] = {
52
- name: 'Jump',
53
- mnemonic: 'goto',
54
- before: null,
55
- stackChange: 0,
56
- ops: [{
57
- name: 'to',
58
- type: 'u32'
59
- }],
60
- operands: 1,
61
- check: true
62
- };
63
- MACHINE_METADATA[MachineOp.Return] = {
64
- name: 'Return',
65
- mnemonic: 'ret',
66
- before: null,
67
- stackChange: 0,
68
- ops: [],
69
- operands: 0,
70
- check: false
71
- };
72
- MACHINE_METADATA[MachineOp.ReturnTo] = {
73
- name: 'ReturnTo',
74
- mnemonic: 'setra',
75
- before: null,
76
- stackChange: 0,
77
- ops: [{
78
- name: 'offset',
79
- type: 'i32'
80
- }],
81
- operands: 1,
82
- check: true
83
- };
84
- METADATA[Op.Helper] = {
85
- name: 'Helper',
86
- mnemonic: 'ncall',
87
- before: null,
88
- stackChange: null,
89
- ops: [{
90
- name: 'helper',
91
- type: 'handle'
92
- }],
93
- operands: 1,
94
- check: true
95
- };
96
- METADATA[Op.DynamicHelper] = {
97
- name: 'DynamicHelper',
98
- mnemonic: 'dynamiccall',
99
- before: null,
100
- stackChange: null,
101
- ops: [],
102
- operands: 0,
103
- check: true
104
- };
105
- METADATA[Op.SetNamedVariables] = {
106
- name: 'SetNamedVariables',
107
- mnemonic: 'vsargs',
108
- before: null,
109
- stackChange: 0,
110
- ops: [{
111
- name: 'register',
112
- type: 'u32'
113
- }],
114
- operands: 1,
115
- check: true
116
- };
117
- METADATA[Op.SetBlocks] = {
118
- name: 'SetBlocks',
119
- mnemonic: 'vbblocks',
120
- before: null,
121
- stackChange: 0,
122
- ops: [{
123
- name: 'register',
124
- type: 'u32'
125
- }],
126
- operands: 1,
127
- check: true
128
- };
129
- METADATA[Op.SetVariable] = {
130
- name: 'SetVariable',
131
- mnemonic: 'sbvar',
132
- before: null,
133
- stackChange: -1,
134
- ops: [{
135
- name: 'symbol',
136
- type: 'u32'
137
- }],
138
- operands: 1,
139
- check: true
140
- };
141
- METADATA[Op.SetBlock] = {
142
- name: 'SetBlock',
143
- mnemonic: 'sblock',
144
- before: null,
145
- stackChange: -3,
146
- ops: [{
147
- name: 'symbol',
148
- type: 'u32'
149
- }],
150
- operands: 1,
151
- check: true
152
- };
153
- METADATA[Op.GetVariable] = {
154
- name: 'GetVariable',
155
- mnemonic: 'symload',
156
- before: null,
157
- stackChange: 1,
158
- ops: [{
159
- name: 'symbol',
160
- type: 'u32'
161
- }],
162
- operands: 1,
163
- check: true
164
- };
165
- METADATA[Op.GetProperty] = {
166
- name: 'GetProperty',
167
- mnemonic: 'getprop',
168
- before: null,
169
- stackChange: 0,
170
- ops: [{
171
- name: 'property',
172
- type: 'str'
173
- }],
174
- operands: 1,
175
- check: true
176
- };
177
- METADATA[Op.GetBlock] = {
178
- name: 'GetBlock',
179
- mnemonic: 'blockload',
180
- before: null,
181
- stackChange: 1,
182
- ops: [{
183
- name: 'block',
184
- type: 'u32'
185
- }],
186
- operands: 1,
187
- check: true
188
- };
189
- METADATA[Op.SpreadBlock] = {
190
- name: 'SpreadBlock',
191
- mnemonic: 'blockspread',
192
- before: null,
193
- stackChange: 2,
194
- ops: [],
195
- operands: 0,
196
- check: true
197
- };
198
- METADATA[Op.HasBlock] = {
199
- name: 'HasBlock',
200
- mnemonic: 'hasblockload',
201
- before: null,
202
- stackChange: 0,
203
- ops: [],
204
- operands: 0,
205
- check: true
206
- };
207
- METADATA[Op.HasBlockParams] = {
208
- name: 'HasBlockParams',
209
- mnemonic: 'hasparamsload',
210
- before: null,
211
- stackChange: -2,
212
- ops: [],
213
- operands: 0,
214
- check: true
215
- };
216
- METADATA[Op.Concat] = {
217
- name: 'Concat',
218
- mnemonic: 'concat',
219
- before: null,
220
- stackChange: null,
221
- ops: [{
222
- name: 'count',
223
- type: 'u32'
224
- }],
225
- operands: 1,
226
- check: true
227
- };
228
- METADATA[Op.IfInline] = {
229
- name: 'IfInline',
230
- mnemonic: 'ifinline',
231
- before: null,
232
- stackChange: -2,
233
- ops: [{
234
- name: 'count',
235
- type: 'u32'
236
- }],
237
- operands: 1,
238
- check: true
239
- };
240
- METADATA[Op.Not] = {
241
- name: 'Not',
242
- mnemonic: 'not',
243
- before: null,
244
- stackChange: 0,
245
- ops: [{
246
- name: 'count',
247
- type: 'u32'
248
- }],
249
- operands: 1,
250
- check: true
251
- };
252
- METADATA[Op.Constant] = {
253
- name: 'Constant',
254
- mnemonic: 'rconstload',
255
- before: null,
256
- stackChange: 1,
257
- ops: [{
258
- name: 'constant',
259
- type: 'unknown'
260
- }],
261
- operands: 1,
262
- check: true
263
- };
264
- METADATA[Op.ConstantReference] = {
265
- name: 'ConstantReference',
266
- mnemonic: 'rconstrefload',
267
- before: null,
268
- stackChange: 1,
269
- ops: [{
270
- name: 'constant',
271
- type: 'unknown'
272
- }],
273
- operands: 1,
274
- check: true
275
- };
276
- METADATA[Op.Primitive] = {
277
- name: 'Primitive',
278
- mnemonic: 'pconstload',
279
- before: null,
280
- stackChange: 1,
281
- ops: [{
282
- name: 'constant',
283
- type: 'primitive'
284
- }],
285
- operands: 1,
286
- check: true
287
- };
288
- METADATA[Op.PrimitiveReference] = {
289
- name: 'PrimitiveReference',
290
- mnemonic: 'ptoref',
291
- before: null,
292
- stackChange: 0,
293
- ops: [],
294
- operands: 0,
295
- check: true
296
- };
297
- METADATA[Op.ReifyU32] = {
298
- name: 'ReifyU32',
299
- mnemonic: 'reifyload',
300
- before: null,
301
- stackChange: 1,
302
- ops: [],
303
- operands: 0,
304
- check: true
305
- };
306
- METADATA[Op.Dup] = {
307
- name: 'Dup',
308
- mnemonic: 'dup',
309
- before: null,
310
- stackChange: 1,
311
- ops: [{
312
- name: 'register',
313
- type: 'u32'
314
- }, {
315
- name: 'offset',
316
- type: 'u32'
317
- }],
318
- operands: 2,
319
- check: true
320
- };
321
- METADATA[Op.Pop] = {
322
- name: 'Pop',
323
- mnemonic: 'pop',
324
- before: null,
325
- stackChange: 0,
326
- ops: [{
327
- name: 'count',
328
- type: 'u32'
329
- }],
330
- operands: 1,
331
- check: false
332
- };
333
- METADATA[Op.Load] = {
334
- name: 'Load',
335
- mnemonic: 'put',
336
- before: null,
337
- stackChange: -1,
338
- ops: [{
339
- name: 'register',
340
- type: 'u32'
341
- }],
342
- operands: 1,
343
- check: true
344
- };
345
- METADATA[Op.Fetch] = {
346
- name: 'Fetch',
347
- mnemonic: 'regload',
348
- before: null,
349
- stackChange: 1,
350
- ops: [{
351
- name: 'register',
352
- type: 'u32'
353
- }],
354
- operands: 1,
355
- check: true
356
- };
357
- METADATA[Op.RootScope] = {
358
- name: 'RootScope',
359
- mnemonic: 'rscopepush',
360
- before: null,
361
- stackChange: 0,
362
- ops: [{
363
- name: 'symbols',
364
- type: 'u32'
365
- }],
366
- operands: 1,
367
- check: true
368
- };
369
- METADATA[Op.VirtualRootScope] = {
370
- name: 'VirtualRootScope',
371
- mnemonic: 'vrscopepush',
372
- before: null,
373
- stackChange: 0,
374
- ops: [{
375
- name: 'register',
376
- type: 'u32'
377
- }],
378
- operands: 1,
379
- check: true
380
- };
381
- METADATA[Op.ChildScope] = {
382
- name: 'ChildScope',
383
- mnemonic: 'cscopepush',
384
- before: null,
385
- stackChange: 0,
386
- ops: [],
387
- operands: 0,
388
- check: true
389
- };
390
- METADATA[Op.PopScope] = {
391
- name: 'PopScope',
392
- mnemonic: 'scopepop',
393
- before: null,
394
- stackChange: 0,
395
- ops: [],
396
- operands: 0,
397
- check: true
398
- };
399
- METADATA[Op.Text] = {
400
- name: 'Text',
401
- mnemonic: 'apnd_text',
402
- before: null,
403
- stackChange: 0,
404
- ops: [{
405
- name: 'contents',
406
- type: 'str'
407
- }],
408
- operands: 1,
409
- check: true
410
- };
411
- METADATA[Op.Comment] = {
412
- name: 'Comment',
413
- mnemonic: 'apnd_comment',
414
- before: null,
415
- stackChange: 0,
416
- ops: [{
417
- name: 'contents',
418
- type: 'str'
419
- }],
420
- operands: 1,
421
- check: true
422
- };
423
- METADATA[Op.AppendHTML] = {
424
- name: 'AppendHTML',
425
- mnemonic: 'apnd_dynhtml',
426
- before: null,
427
- stackChange: -1,
428
- ops: [],
429
- operands: 0,
430
- check: true
431
- };
432
- METADATA[Op.AppendSafeHTML] = {
433
- name: 'AppendSafeHTML',
434
- mnemonic: 'apnd_dynshtml',
435
- before: null,
436
- stackChange: -1,
437
- ops: [],
438
- operands: 0,
439
- check: true
440
- };
441
- METADATA[Op.AppendDocumentFragment] = {
442
- name: 'AppendDocumentFragment',
443
- mnemonic: 'apnd_dynfrag',
444
- before: null,
445
- stackChange: -1,
446
- ops: [],
447
- operands: 0,
448
- check: true
449
- };
450
- METADATA[Op.AppendNode] = {
451
- name: 'AppendNode',
452
- mnemonic: 'apnd_dynnode',
453
- before: null,
454
- stackChange: -1,
455
- ops: [],
456
- operands: 0,
457
- check: true
458
- };
459
- METADATA[Op.AppendText] = {
460
- name: 'AppendText',
461
- mnemonic: 'apnd_dyntext',
462
- before: null,
463
- stackChange: -1,
464
- ops: [],
465
- operands: 0,
466
- check: true
467
- };
468
- METADATA[Op.OpenElement] = {
469
- name: 'OpenElement',
470
- mnemonic: 'apnd_tag',
471
- before: null,
472
- stackChange: 0,
473
- ops: [{
474
- name: 'tag',
475
- type: 'str'
476
- }],
477
- operands: 1,
478
- check: true
479
- };
480
- METADATA[Op.OpenDynamicElement] = {
481
- name: 'OpenDynamicElement',
482
- mnemonic: 'apnd_dyntag',
483
- before: null,
484
- stackChange: -1,
485
- ops: [],
486
- operands: 0,
487
- check: true
488
- };
489
- METADATA[Op.PushRemoteElement] = {
490
- name: 'PushRemoteElement',
491
- mnemonic: 'apnd_remotetag',
492
- before: null,
493
- stackChange: -3,
494
- ops: [],
495
- operands: 0,
496
- check: true
497
- };
498
- METADATA[Op.StaticAttr] = {
499
- name: 'StaticAttr',
500
- mnemonic: 'apnd_attr',
501
- before: null,
502
- stackChange: 0,
503
- ops: [{
504
- name: 'name',
505
- type: 'str'
506
- }, {
507
- name: 'value',
508
- type: 'str'
509
- }, {
510
- name: 'namespace',
511
- type: 'option-str'
512
- }],
513
- operands: 3,
514
- check: true
515
- };
516
- METADATA[Op.DynamicAttr] = {
517
- name: 'DynamicAttr',
518
- mnemonic: 'apnd_dynattr',
519
- before: null,
520
- stackChange: -1,
521
- ops: [{
522
- name: 'name',
523
- type: 'str'
524
- }, {
525
- name: 'trusting',
526
- type: 'bool'
527
- }, {
528
- name: 'namespace',
529
- type: 'option-str'
530
- }],
531
- operands: 3,
532
- check: true
533
- };
534
- METADATA[Op.ComponentAttr] = {
535
- name: 'ComponentAttr',
536
- mnemonic: 'apnd_cattr',
537
- before: null,
538
- stackChange: -1,
539
- ops: [{
540
- name: 'name',
541
- type: 'str'
542
- }, {
543
- name: 'trusting',
544
- type: 'bool'
545
- }, {
546
- name: 'namespace',
547
- type: 'option-str'
548
- }],
549
- operands: 3,
550
- check: true
551
- };
552
- METADATA[Op.FlushElement] = {
553
- name: 'FlushElement',
554
- mnemonic: 'apnd_flushtag',
555
- before: null,
556
- stackChange: 0,
557
- ops: [],
558
- operands: 0,
559
- check: true
560
- };
561
- METADATA[Op.CloseElement] = {
562
- name: 'CloseElement',
563
- mnemonic: 'apnd_closetag',
564
- before: null,
565
- stackChange: 0,
566
- ops: [],
567
- operands: 0,
568
- check: true
569
- };
570
- METADATA[Op.PopRemoteElement] = {
571
- name: 'PopRemoteElement',
572
- mnemonic: 'apnd_closeremotetag',
573
- before: null,
574
- stackChange: 0,
575
- ops: [],
576
- operands: 0,
577
- check: true
578
- };
579
- METADATA[Op.Modifier] = {
580
- name: 'Modifier',
581
- mnemonic: 'apnd_modifier',
582
- before: null,
583
- stackChange: -1,
584
- ops: [{
585
- name: 'helper',
586
- type: 'handle'
587
- }],
588
- operands: 1,
589
- check: true
590
- };
591
- METADATA[Op.BindDynamicScope] = {
592
- name: 'BindDynamicScope',
593
- mnemonic: 'setdynscope',
594
- before: null,
595
- stackChange: null,
596
- ops: [{
597
- name: 'names',
598
- type: 'str-array'
599
- }],
600
- operands: 1,
601
- check: true
602
- };
603
- METADATA[Op.PushDynamicScope] = {
604
- name: 'PushDynamicScope',
605
- mnemonic: 'dynscopepush',
606
- before: null,
607
- stackChange: 0,
608
- ops: [],
609
- operands: 0,
610
- check: true
611
- };
612
- METADATA[Op.PopDynamicScope] = {
613
- name: 'PopDynamicScope',
614
- mnemonic: 'dynscopepop',
615
- before: null,
616
- stackChange: 0,
617
- ops: [],
618
- operands: 0,
619
- check: true
620
- };
621
- METADATA[Op.CompileBlock] = {
622
- name: 'CompileBlock',
623
- mnemonic: 'cmpblock',
624
- before: null,
625
- stackChange: 0,
626
- ops: [],
627
- operands: 0,
628
- check: true
629
- };
630
- METADATA[Op.PushBlockScope] = {
631
- name: 'PushBlockScope',
632
- mnemonic: 'scopeload',
633
- before: null,
634
- stackChange: 1,
635
- ops: [{
636
- name: 'scope',
637
- type: 'scope'
638
- }],
639
- operands: 1,
640
- check: true
641
- };
642
- METADATA[Op.PushSymbolTable] = {
643
- name: 'PushSymbolTable',
644
- mnemonic: 'dsymload',
645
- before: null,
646
- stackChange: 1,
647
- ops: [{
648
- name: 'table',
649
- type: 'symbol-table'
650
- }],
651
- operands: 1,
652
- check: true
653
- };
654
- METADATA[Op.InvokeYield] = {
655
- name: 'InvokeYield',
656
- mnemonic: 'invokeyield',
657
- before: null,
658
- stackChange: null,
659
- ops: [],
660
- operands: 0,
661
- check: true
662
- };
663
- METADATA[Op.JumpIf] = {
664
- name: 'JumpIf',
665
- mnemonic: 'iftrue',
666
- before: null,
667
- stackChange: -1,
668
- ops: [{
669
- name: 'to',
670
- type: 'u32'
671
- }],
672
- operands: 1,
673
- check: true
674
- };
675
- METADATA[Op.JumpUnless] = {
676
- name: 'JumpUnless',
677
- mnemonic: 'iffalse',
678
- before: null,
679
- stackChange: -1,
680
- ops: [{
681
- name: 'to',
682
- type: 'u32'
683
- }],
684
- operands: 1,
685
- check: true
686
- };
687
- METADATA[Op.JumpEq] = {
688
- name: 'JumpEq',
689
- mnemonic: 'ifeq',
690
- before: null,
691
- stackChange: 0,
692
- ops: [{
693
- name: 'to',
694
- type: 'i32'
695
- }, {
696
- name: 'comparison',
697
- type: 'i32'
698
- }],
699
- operands: 2,
700
- check: true
701
- };
702
- METADATA[Op.AssertSame] = {
703
- name: 'AssertSame',
704
- mnemonic: 'assert_eq',
705
- before: null,
706
- stackChange: 0,
707
- ops: [],
708
- operands: 0,
709
- check: true
710
- };
711
- METADATA[Op.Enter] = {
712
- name: 'Enter',
713
- mnemonic: 'blk_start',
714
- before: null,
715
- stackChange: 0,
716
- ops: [{
717
- name: 'args',
718
- type: 'u32'
719
- }],
720
- operands: 1,
721
- check: true
722
- };
723
- METADATA[Op.Exit] = {
724
- name: 'Exit',
725
- mnemonic: 'blk_end',
726
- before: null,
727
- stackChange: 0,
728
- ops: [],
729
- operands: 0,
730
- check: true
731
- };
732
- METADATA[Op.ToBoolean] = {
733
- name: 'ToBoolean',
734
- mnemonic: 'anytobool',
735
- before: null,
736
- stackChange: 0,
737
- ops: [],
738
- operands: 0,
739
- check: true
740
- };
741
- METADATA[Op.EnterList] = {
742
- name: 'EnterList',
743
- mnemonic: 'list_start',
744
- before: null,
745
- stackChange: null,
746
- ops: [{
747
- name: 'address',
748
- type: 'u32'
749
- }, {
750
- name: 'address',
751
- type: 'u32'
752
- }],
753
- operands: 2,
754
- check: true
755
- };
756
- METADATA[Op.ExitList] = {
757
- name: 'ExitList',
758
- mnemonic: 'list_end',
759
- before: null,
760
- stackChange: 0,
761
- ops: [],
762
- operands: 0,
763
- check: true
764
- };
765
- METADATA[Op.Iterate] = {
766
- name: 'Iterate',
767
- mnemonic: 'iter',
768
- before: null,
769
- stackChange: 0,
770
- ops: [{
771
- name: 'end',
772
- type: 'u32'
773
- }],
774
- operands: 1,
775
- check: false
776
- };
777
- METADATA[Op.Main] = {
778
- name: 'Main',
779
- mnemonic: 'main',
780
- before: null,
781
- stackChange: -2,
782
- ops: [{
783
- name: 'state',
784
- type: 'register'
785
- }],
786
- operands: 1,
787
- check: true
788
- };
789
- METADATA[Op.ContentType] = {
790
- name: 'ContentType',
791
- mnemonic: 'ctload',
792
- before: null,
793
- stackChange: 1,
794
- ops: [],
795
- operands: 0,
796
- check: true
797
- };
798
- METADATA[Op.DynamicContentType] = {
799
- name: 'DynamicContentType',
800
- mnemonic: 'dctload',
801
- before: null,
802
- stackChange: 1,
803
- ops: [],
804
- operands: 0,
805
- check: true
806
- };
807
- METADATA[Op.Curry] = {
808
- name: 'Curry',
809
- mnemonic: 'curry',
810
- before: null,
811
- stackChange: null,
812
- ops: [{
813
- name: 'type',
814
- type: 'u32'
815
- }, {
816
- name: 'is-strict',
817
- type: 'bool'
818
- }],
819
- operands: 2,
820
- check: true
821
- };
822
- METADATA[Op.PushComponentDefinition] = {
823
- name: 'PushComponentDefinition',
824
- mnemonic: 'cmload',
825
- before: null,
826
- stackChange: 1,
827
- ops: [{
828
- name: 'spec',
829
- type: 'handle'
830
- }],
831
- operands: 1,
832
- check: true
833
- };
834
- METADATA[Op.PushDynamicComponentInstance] = {
835
- name: 'PushDynamicComponentInstance',
836
- mnemonic: 'dciload',
837
- before: null,
838
- stackChange: 0,
839
- ops: [],
840
- operands: 0,
841
- check: true
842
- };
843
- METADATA[Op.ResolveDynamicComponent] = {
844
- name: 'ResolveDynamicComponent',
845
- mnemonic: 'cdload',
846
- before: null,
847
- stackChange: 0,
848
- ops: [{
849
- name: 'owner',
850
- type: 'owner'
851
- }],
852
- operands: 1,
853
- check: true
854
- };
855
- METADATA[Op.PushArgs] = {
856
- name: 'PushArgs',
857
- mnemonic: 'argsload',
858
- before: null,
859
- stackChange: null,
860
- ops: [{
861
- name: 'names',
862
- type: 'str-array'
863
- }, {
864
- name: 'block-names',
865
- type: 'str-array'
866
- }, {
867
- name: 'flags',
868
- type: 'u32'
869
- }],
870
- operands: 3,
871
- check: true
872
- };
873
- METADATA[Op.PushEmptyArgs] = {
874
- name: 'PushEmptyArgs',
875
- mnemonic: 'emptyargsload',
876
- before: null,
877
- stackChange: 1,
878
- ops: [],
879
- operands: 0,
880
- check: true
881
- };
882
- METADATA[Op.PopArgs] = {
883
- name: 'PopArgs',
884
- mnemonic: 'argspop',
885
- before: null,
886
- stackChange: null,
887
- ops: [],
888
- operands: 0,
889
- check: true
890
- };
891
- METADATA[Op.PrepareArgs] = {
892
- name: 'PrepareArgs',
893
- mnemonic: 'argsprep',
894
- before: null,
895
- stackChange: 0,
896
- ops: [{
897
- name: 'state',
898
- type: 'register'
899
- }],
900
- operands: 1,
901
- check: false
902
- };
903
- METADATA[Op.CaptureArgs] = {
904
- name: 'CaptureArgs',
905
- mnemonic: 'argscapture',
906
- before: null,
907
- stackChange: 0,
908
- ops: [],
909
- operands: 0,
910
- check: true
911
- };
912
- METADATA[Op.CreateComponent] = {
913
- name: 'CreateComponent',
914
- mnemonic: 'comp_create',
915
- before: null,
916
- stackChange: 0,
917
- ops: [{
918
- name: 'flags',
919
- type: 'u32'
920
- }, {
921
- name: 'state',
922
- type: 'register'
923
- }],
924
- operands: 2,
925
- check: true
926
- };
927
- METADATA[Op.RegisterComponentDestructor] = {
928
- name: 'RegisterComponentDestructor',
929
- mnemonic: 'comp_dest',
930
- before: null,
931
- stackChange: 0,
932
- ops: [{
933
- name: 'state',
934
- type: 'register'
935
- }],
936
- operands: 1,
937
- check: true
938
- };
939
- METADATA[Op.PutComponentOperations] = {
940
- name: 'PutComponentOperations',
941
- mnemonic: 'comp_elops',
942
- before: null,
943
- stackChange: 0,
944
- ops: [],
945
- operands: 0,
946
- check: true
947
- };
948
- METADATA[Op.GetComponentSelf] = {
949
- name: 'GetComponentSelf',
950
- mnemonic: 'comp_selfload',
951
- before: null,
952
- stackChange: 1,
953
- ops: [{
954
- name: 'state',
955
- type: 'register'
956
- }],
957
- operands: 1,
958
- check: true
959
- };
960
- METADATA[Op.GetComponentTagName] = {
961
- name: 'GetComponentTagName',
962
- mnemonic: 'comp_tagload',
963
- before: null,
964
- stackChange: 1,
965
- ops: [{
966
- name: 'state',
967
- type: 'register'
968
- }],
969
- operands: 1,
970
- check: true
971
- };
972
- METADATA[Op.GetComponentLayout] = {
973
- name: 'GetComponentLayout',
974
- mnemonic: 'comp_layoutload',
975
- before: null,
976
- stackChange: 2,
977
- ops: [{
978
- name: 'state',
979
- type: 'register'
980
- }],
981
- operands: 1,
982
- check: true
983
- };
984
- METADATA[Op.BindEvalScope] = {
985
- name: 'BindEvalScope',
986
- mnemonic: 'eval_scope',
987
- before: null,
988
- stackChange: 0,
989
- ops: [{
990
- name: 'state',
991
- type: 'register'
992
- }],
993
- operands: 1,
994
- check: true
995
- };
996
- METADATA[Op.SetupForEval] = {
997
- name: 'SetupForEval',
998
- mnemonic: 'eval_setup',
999
- before: null,
1000
- stackChange: 0,
1001
- ops: [{
1002
- name: 'state',
1003
- type: 'register'
1004
- }],
1005
- operands: 1,
1006
- check: true
1007
- };
1008
- METADATA[Op.PopulateLayout] = {
1009
- name: 'PopulateLayout',
1010
- mnemonic: 'comp_layoutput',
1011
- before: null,
1012
- stackChange: -2,
1013
- ops: [{
1014
- name: 'state',
1015
- type: 'register'
1016
- }],
1017
- operands: 1,
1018
- check: true
1019
- };
1020
- METADATA[Op.InvokeComponentLayout] = {
1021
- name: 'InvokeComponentLayout',
1022
- mnemonic: 'comp_invokelayout',
1023
- before: null,
1024
- stackChange: 0,
1025
- ops: [{
1026
- name: 'state',
1027
- type: 'register'
1028
- }],
1029
- operands: 1,
1030
- check: true
1031
- };
1032
- METADATA[Op.BeginComponentTransaction] = {
1033
- name: 'BeginComponentTransaction',
1034
- mnemonic: 'comp_begin',
1035
- before: null,
1036
- stackChange: 0,
1037
- ops: [],
1038
- operands: 0,
1039
- check: true
1040
- };
1041
- METADATA[Op.CommitComponentTransaction] = {
1042
- name: 'CommitComponentTransaction',
1043
- mnemonic: 'comp_commit',
1044
- before: null,
1045
- stackChange: 0,
1046
- ops: [],
1047
- operands: 0,
1048
- check: true
1049
- };
1050
- METADATA[Op.DidCreateElement] = {
1051
- name: 'DidCreateElement',
1052
- mnemonic: 'comp_created',
1053
- before: null,
1054
- stackChange: 0,
1055
- ops: [{
1056
- name: 'state',
1057
- type: 'register'
1058
- }],
1059
- operands: 1,
1060
- check: true
1061
- };
1062
- METADATA[Op.DidRenderLayout] = {
1063
- name: 'DidRenderLayout',
1064
- mnemonic: 'comp_rendered',
1065
- before: null,
1066
- stackChange: 0,
1067
- ops: [{
1068
- name: 'state',
1069
- type: 'register'
1070
- }],
1071
- operands: 1,
1072
- check: true
1073
- };
1074
- METADATA[Op.ResolveMaybeLocal] = {
1075
- name: 'ResolveMaybeLocal',
1076
- mnemonic: 'eval_varload',
1077
- before: null,
1078
- stackChange: 1,
1079
- ops: [{
1080
- name: 'local',
1081
- type: 'str'
1082
- }],
1083
- operands: 1,
1084
- check: true
1085
- };
1086
- METADATA[Op.Debugger] = {
1087
- name: 'Debugger',
1088
- mnemonic: 'debugger',
1089
- before: null,
1090
- stackChange: 0,
1091
- ops: [{
1092
- name: 'symbols',
1093
- type: 'str-array'
1094
- }, {
1095
- name: 'debugInfo',
1096
- type: 'array'
1097
- }],
1098
- operands: 2,
1099
- check: true
1100
- };
1101
7
  function debugSlice(context, start, end) {}
1102
8
  function logOpcode(type, params) {}
1103
- function debug(c, op, isMachine) {
1104
- return undefined;
1105
- }
9
+ function debug(c, op, isMachine) {}
1106
10
 
1107
11
  // TODO: How do these map onto constant and machine types?
1108
- const OPERAND_TYPES = ['u32', 'i32', 'owner', 'handle', 'str', 'option-str', 'array', 'str-array', 'bool', 'primitive', 'register', 'unknown', 'symbol-table', 'scope'];
1109
- function isOperandType(s) {
1110
- return OPERAND_TYPES.indexOf(s) !== -1;
1111
- }
12
+ new Array(Op.Size).fill(null), new Array(Op.Size).fill(null);
13
+ const OPERAND_TYPES = ["u32", "i32", "owner", "handle", "str", "option-str", "array", "str-array", "bool", "primitive", "register", "unknown", "symbol-table", "scope"];
1112
14
  function normalize(key, input) {
1113
15
  let name;
1114
- if (input.format === undefined) {
1115
- throw new Error(`Missing format in ${JSON.stringify(input)}`);
1116
- }
1117
- if (Array.isArray(input.format)) {
1118
- name = input.format[0];
1119
- } else {
1120
- name = input.format;
1121
- }
1122
- let ops = Array.isArray(input.format) ? operands(input.format.slice(1)) : [];
16
+ if (void 0 === input.format) throw new Error(`Missing format in ${JSON.stringify(input)}`);
17
+ name = Array.isArray(input.format) ? input.format[0] : input.format;
18
+ let ops = Array.isArray(input.format) ? function (input) {
19
+ if (!Array.isArray(input)) throw new Error(`Expected operands array, got ${JSON.stringify(input)}`);
20
+ return input.map(op);
21
+ }(input.format.slice(1)) : [];
1123
22
  return {
1124
- name,
23
+ name: name,
1125
24
  mnemonic: key,
1126
25
  before: null,
1127
- stackChange: stackChange(input['operand-stack']),
1128
- ops,
26
+ stackChange: stackChange(input["operand-stack"]),
27
+ ops: ops,
1129
28
  operands: ops.length,
1130
- check: input.skip === true ? false : true
29
+ check: !0 !== input.skip
1131
30
  };
1132
31
  }
1133
32
  function stackChange(stack) {
1134
- if (stack === undefined) {
1135
- return 0;
1136
- }
1137
- let before = stack[0];
1138
- let after = stack[1];
1139
- if (hasRest(before) || hasRest(after)) {
1140
- return null;
1141
- }
1142
- return after.length - before.length;
33
+ if (void 0 === stack) return 0;
34
+ let before = stack[0],
35
+ after = stack[1];
36
+ return hasRest(before) || hasRest(after) ? null : after.length - before.length;
1143
37
  }
1144
38
  function hasRest(input) {
1145
- if (!Array.isArray(input)) {
1146
- throw new Error(`Unexpected stack entry: ${JSON.stringify(input)}`);
1147
- }
1148
- return input.some(s => s.slice(-3) === '...');
1149
- }
1150
- function operands(input) {
1151
- if (!Array.isArray(input)) {
1152
- throw new Error(`Expected operands array, got ${JSON.stringify(input)}`);
1153
- }
1154
- return input.map(op);
39
+ if (!Array.isArray(input)) throw new Error(`Unexpected stack entry: ${JSON.stringify(input)}`);
40
+ return input.some(s => "..." === s.slice(-3));
1155
41
  }
1156
42
  function op(input) {
1157
- let [name, type] = input.split(':');
1158
- if (isOperandType(type)) {
1159
- return {
1160
- name,
1161
- type
1162
- };
1163
- } else {
1164
- throw new Error(`Expected operand, found ${JSON.stringify(input)}`);
1165
- }
43
+ let [name, type] = input.split(":");
44
+ if (s = type, -1 !== OPERAND_TYPES.indexOf(s)) return {
45
+ name: name,
46
+ type: type
47
+ };
48
+ throw new Error(`Expected operand, found ${JSON.stringify(input)}`);
49
+ var s;
1166
50
  }
1167
51
  function normalizeAll(parsed) {
1168
- let machine = normalizeParsed(parsed.machine);
1169
- let syscall = normalizeParsed(parsed.syscall);
1170
52
  return {
1171
- machine,
1172
- syscall
53
+ machine: normalizeParsed(parsed.machine),
54
+ syscall: normalizeParsed(parsed.syscall)
1173
55
  };
1174
56
  }
1175
57
  function normalizeParsed(parsed) {
1176
58
  let out = Object.create(null);
1177
- for (const [key, value] of Object.entries(parsed)) {
1178
- out[key] = normalize(key, value);
1179
- }
59
+ for (const [key, value] of Object.entries(parsed)) out[key] = normalize(key, value);
1180
60
  return out;
1181
61
  }
1182
62
  function buildEnum(name, parsed, offset, max) {
1183
- let e = [`export enum ${name} {`];
1184
- let last;
63
+ let last,
64
+ e = [`export enum ${name} {`];
1185
65
  Object.values(parsed).forEach((value, i) => {
1186
- e.push(` ${value.name} = ${offset + i},`);
1187
- last = i;
1188
- });
1189
- e.push(` Size = ${last + offset + 1},`);
1190
- e.push('}');
1191
- let enumString = e.join('\n');
1192
- let predicate;
1193
- if (max) {
1194
- predicate = strip`
66
+ e.push(` ${value.name} = ${offset + i},`), last = i;
67
+ }), e.push(` Size = ${last + offset + 1},`), e.push("}");
68
+ let predicate,
69
+ enumString = e.join("\n");
70
+ return predicate = max ? strip`
1195
71
  export function is${name}(value: number): value is ${name} {
1196
72
  return value >= ${offset} && value <= ${max};
1197
73
  }
1198
- `;
1199
- } else {
1200
- predicate = strip`
74
+ ` : strip`
1201
75
  export function is${name}(value: number): value is ${name} {
1202
76
  return value >= ${offset};
1203
77
  }
1204
- `;
1205
- }
1206
- return {
1207
- enumString,
1208
- predicate
78
+ `, {
79
+ enumString: enumString,
80
+ predicate: predicate
1209
81
  };
1210
82
  }
1211
83
  function strip(strings, ...args) {
1212
- let out = '';
1213
- for (let i = 0; i < strings.length; i++) {
1214
- let string = strings[i];
1215
- let dynamic = args[i] !== undefined ? String(args[i]) : '';
1216
- out += `${string}${dynamic}`;
1217
- }
1218
-
84
+ let out = "";
85
+ for (let i = 0; i < strings.length; i++) out += `${strings[i]}${void 0 !== args[i] ? String(args[i]) : ""}`;
1219
86
  // eslint-disable-next-line regexp/no-super-linear-backtracking
1220
87
  out = /^\s*?\n?([\s\S]*?)\s*$/u.exec(out)[1];
1221
88
  let min = Number.MAX_SAFE_INTEGER;
1222
- for (let line of out.split('\n')) {
89
+ for (let line of out.split("\n")) {
1223
90
  let leading = /^\s*/u.exec(line)[0].length;
1224
91
  min = Math.min(min, leading);
1225
92
  }
1226
- let stripped = '';
1227
- for (let line of out.split('\n')) {
1228
- stripped += line.slice(min) + '\n';
1229
- }
93
+ let stripped = "";
94
+ for (let line of out.split("\n")) stripped += line.slice(min) + "\n";
1230
95
  return stripped;
1231
96
  }
1232
- const META_KIND = ['METADATA', 'MACHINE_METADATA'];
97
+ const META_KIND = ["METADATA", "MACHINE_METADATA"];
1233
98
  function buildSingleMeta(kind, all, key) {
1234
- let e = kind === 'MACHINE_METADATA' ? 'MachineOp' : 'Op';
1235
- return `${kind}[${e}.${all[key].name}] = ${stringify(all[key], 0)};`;
99
+ return `${kind}[${"MACHINE_METADATA" === kind ? "MachineOp" : "Op"}.${all[key].name}] = ${stringify(all[key], 0)};`;
1236
100
  }
1237
101
  function stringify(o, pad) {
1238
- if (typeof o !== 'object' || o === null) {
1239
- if (typeof o === 'string') {
1240
- return `'${o}'`;
1241
- }
1242
- return JSON.stringify(o);
1243
- }
1244
- if (Array.isArray(o)) {
1245
- return `[${o.map(v => stringify(v, pad)).join(', ')}]`;
1246
- }
1247
- let out = ['{'];
1248
- for (let key of Object.keys(o)) {
1249
- out.push(`${' '.repeat(pad + 2)}${key}: ${stringify(o[key], pad + 2)},`);
1250
- }
1251
- out.push(`${' '.repeat(pad)}}`);
1252
- return out.join('\n');
102
+ if ("object" != typeof o || null === o) return "string" == typeof o ? `'${o}'` : JSON.stringify(o);
103
+ if (Array.isArray(o)) return `[${o.map(v => stringify(v, pad)).join(", ")}]`;
104
+ let out = ["{"];
105
+ for (let key of Object.keys(o)) out.push(`${" ".repeat(pad + 2)}${key}: ${stringify(o[key], pad + 2)},`);
106
+ return out.push(`${" ".repeat(pad)}}`), out.join("\n");
1253
107
  }
1254
108
  function buildMetas(kind, all) {
1255
109
  let out = [];
1256
- for (let key of Object.keys(all)) {
1257
- out.push(buildSingleMeta(kind, all, key));
1258
- }
1259
- return out.join('\n\n');
1260
- }
1261
- function wrap(checker) {
1262
- class Wrapped {
1263
- validate(value) {
1264
- return checker().validate(value);
1265
- }
1266
- expected() {
1267
- return checker().expected();
1268
- }
1269
- }
1270
- return new Wrapped();
1271
- }
1272
- class TypeofChecker {
1273
- constructor(expectedType) {
1274
- this.expectedType = expectedType;
1275
- }
1276
- validate(value) {
1277
- return typeof value === this.expectedType;
1278
- }
1279
- expected() {
1280
- return `typeof ${this.expectedType}`;
1281
- }
1282
- }
1283
- class PrimitiveChecker {
1284
- validate(value) {
1285
- return typeof value !== 'string' || typeof value === 'number' || typeof value === 'string' || value === undefined || value === null;
1286
- }
1287
- expected() {
1288
- return `a primitive`;
1289
- }
1290
- }
1291
- class NullChecker {
1292
- validate(value) {
1293
- return value === null;
1294
- }
1295
- expected() {
1296
- return `null`;
1297
- }
1298
- }
1299
- class UndefinedChecker {
1300
- validate(value) {
1301
- return value === undefined;
1302
- }
1303
- expected() {
1304
- return `undefined`;
1305
- }
1306
- }
1307
- class InstanceofChecker {
1308
- constructor(Class) {
1309
- this.Class = Class;
1310
- }
1311
- validate(value) {
1312
- return value ? value instanceof this.Class : false;
1313
- }
1314
- expected() {
1315
- return `an instance of ${this.Class.name}`;
1316
- }
1317
- }
1318
- class OptionChecker {
1319
- constructor(checker, emptyValue) {
1320
- this.checker = checker;
1321
- this.emptyValue = emptyValue;
1322
- }
1323
- validate(value) {
1324
- if (value === this.emptyValue) return true;
1325
- return this.checker.validate(value);
1326
- }
1327
- expected() {
1328
- return `${this.checker.expected()} or null`;
1329
- }
1330
- }
1331
- class MaybeChecker {
1332
- constructor(checker) {
1333
- this.checker = checker;
1334
- }
1335
- validate(value) {
1336
- if (value === null || value === undefined) return true;
1337
- return this.checker.validate(value);
1338
- }
1339
- expected() {
1340
- return `${this.checker.expected()} or null or undefined`;
1341
- }
110
+ for (let key of Object.keys(all)) out.push(buildSingleMeta(kind, all, key));
111
+ return out.join("\n\n");
1342
112
  }
1343
- class OrChecker {
1344
- constructor(left, right) {
1345
- this.left = left;
1346
- this.right = right;
1347
- }
113
+ class NoopChecker {
1348
114
  validate(value) {
1349
- return this.left.validate(value) || this.right.validate(value);
1350
- }
1351
- expected() {
1352
- return `${this.left.expected()} or ${this.right.expected()}`;
1353
- }
1354
- }
1355
- class ExactValueChecker {
1356
- constructor(value, desc) {
1357
- this.value = value;
1358
- this.desc = desc;
1359
- }
1360
- validate(obj) {
1361
- return obj === this.value;
1362
- }
1363
- expected() {
1364
- return this.desc;
1365
- }
1366
- }
1367
- class PropertyChecker {
1368
- constructor(checkers) {
1369
- this.checkers = checkers;
1370
- }
1371
- validate(obj) {
1372
- if (typeof obj !== 'object') return false;
1373
- if (obj === null || obj === undefined) return false;
1374
- return Object.entries(this.checkers).every(([k, checker]) => k in obj ? checker.validate(obj[k]) : false);
1375
- }
1376
- expected() {
1377
- let pairs = Object.entries(this.checkers).map(([k, checker]) => {
1378
- return `${k}: ${checker.expected()}`;
1379
- });
1380
- return `{ ${pairs.join(',')} }`;
1381
- }
1382
- }
1383
- class ArrayChecker {
1384
- constructor(checker) {
1385
- this.checker = checker;
1386
- }
1387
- validate(obj) {
1388
- if (obj === null || obj === undefined) return false;
1389
- if (!Array.isArray(obj)) return false;
1390
- return obj.every(item => this.checker.validate(item));
115
+ return !0;
1391
116
  }
1392
117
  expected() {
1393
- return `Array<${this.checker.expected()}>`;
118
+ return "<noop>";
1394
119
  }
1395
120
  }
1396
- class DictChecker {
1397
- constructor(checker) {
1398
- this.checker = checker;
1399
- }
1400
- validate(value) {
1401
- let isDict = typeof value === 'object' && value !== null && Object.getPrototypeOf(value) === null;
1402
- if (!isDict) return false;
1403
- let {
1404
- checker
1405
- } = this;
1406
- for (let key in value) {
1407
- if (!checker.validate(value[key])) {
1408
- return false;
1409
- }
1410
- }
1411
- return true;
1412
- }
1413
- expected() {
1414
- return `a primitive`;
1415
- }
1416
- }
1417
- class OpaqueChecker {
1418
- type;
1419
- validate(_obj) {
1420
- return true;
1421
- }
1422
- expected() {
1423
- return `any`;
1424
- }
1425
- }
1426
- class ObjectChecker {
1427
- validate(obj) {
1428
- return typeof obj === 'function' || typeof obj === 'object' && obj !== null;
1429
- }
1430
- expected() {
1431
- return `an object or function (valid WeakMap key)`;
1432
- }
1433
- }
1434
- class SafeStringChecker {
1435
- validate(value) {
1436
- return typeof value === 'object' && value !== null && typeof value.toHTML === 'function';
1437
- }
1438
- expected() {
1439
- return `SafeString`;
1440
- }
121
+ function wrap(checker) {
122
+ return new NoopChecker();
1441
123
  }
1442
124
  function CheckInstanceof(Class) {
1443
- return new InstanceofChecker(Class);
125
+ return new NoopChecker();
1444
126
  }
1445
127
  function CheckOption(checker) {
1446
- return new OptionChecker(checker, null);
128
+ return new NoopChecker();
1447
129
  }
1448
130
  function CheckMaybe(checker) {
1449
- return new MaybeChecker(checker);
131
+ return new NoopChecker();
1450
132
  }
1451
133
  function CheckInterface(obj) {
1452
- return new PropertyChecker(obj);
134
+ return new NoopChecker();
1453
135
  }
1454
136
  function CheckArray(obj) {
1455
- return new ArrayChecker(obj);
137
+ return new NoopChecker();
1456
138
  }
1457
139
  function CheckDict(obj) {
1458
- return new DictChecker(obj);
140
+ return new NoopChecker();
1459
141
  }
1460
142
  function defaultMessage(value, expected) {
1461
143
  return `Got ${value}, expected:\n${expected}`;
1462
144
  }
1463
145
  function check(value, checker, message = defaultMessage) {
1464
- if (typeof checker === 'function') {
1465
- checker(value);
1466
- return value;
1467
- }
1468
- if (checker.validate(value)) {
1469
- return value;
1470
- } else {
1471
- throw new Error(message(value, checker.expected()));
1472
- }
1473
- }
1474
- let size = 0;
1475
- function recordStackSize(sp) {
1476
- size = sp;
1477
- }
1478
- function expectStackChange(stack, expected, name) {
1479
- let actual = stack.sp - size;
1480
- if (actual === expected) return;
1481
- throw new Error(`Expected stack to change by ${expected}, but it changed by ${actual} in ${name}`);
1482
- }
1483
- const CheckPrimitive = new PrimitiveChecker();
1484
- const CheckFunction = new TypeofChecker('function');
1485
- const CheckNumber = new TypeofChecker('number');
1486
- const CheckBoolean = new TypeofChecker('boolean');
1487
- const CheckHandle = CheckNumber;
1488
- const CheckString = new TypeofChecker('string');
1489
- const CheckNull = new NullChecker();
1490
- const CheckUndefined = new UndefinedChecker();
1491
- const CheckUnknown = new OpaqueChecker();
1492
- const CheckSafeString = new SafeStringChecker();
1493
- const CheckObject = new ObjectChecker();
146
+ return value;
147
+ }
148
+ function recordStackSize(sp) {}
149
+ const CheckPrimitive = new NoopChecker(),
150
+ CheckFunction = new NoopChecker(),
151
+ CheckNumber = new NoopChecker(),
152
+ CheckBoolean = new NoopChecker(),
153
+ CheckHandle = new NoopChecker(),
154
+ CheckString = new NoopChecker(),
155
+ CheckUndefined = new NoopChecker(),
156
+ CheckUnknown = new NoopChecker(),
157
+ CheckSafeString = new NoopChecker(),
158
+ CheckObject = new NoopChecker();
1494
159
  function CheckOr(left, right) {
1495
- return new OrChecker(left, right);
1496
- }
1497
- function CheckValue(value, desc = String(value)) {
1498
- return new ExactValueChecker(value, desc);
160
+ return new NoopChecker();
1499
161
  }
1500
- const CheckBlockSymbolTable = CheckInterface({
1501
- parameters: CheckArray(CheckNumber)
1502
- });
1503
- const CheckProgramSymbolTable = CheckInterface({
1504
- hasEval: CheckBoolean,
1505
- symbols: CheckArray(CheckString)
1506
- });
1507
- const CheckElement = CheckInterface({
1508
- nodeType: CheckValue(1),
1509
- tagName: CheckString,
1510
- nextSibling: CheckUnknown
1511
- });
1512
- const CheckDocumentFragment = CheckInterface({
1513
- nodeType: CheckValue(11),
1514
- nextSibling: CheckUnknown
1515
- });
1516
- const CheckNode = CheckInterface({
1517
- nodeType: CheckNumber,
1518
- nextSibling: CheckUnknown
1519
- });
162
+ const CheckBlockSymbolTable = new NoopChecker(),
163
+ CheckProgramSymbolTable = new NoopChecker(),
164
+ CheckElement = new NoopChecker(),
165
+ CheckDocumentFragment = new NoopChecker(),
166
+ CheckNode = new NoopChecker();
1520
167
 
1521
- export { CheckArray, CheckBlockSymbolTable, CheckBoolean, CheckDict, CheckDocumentFragment, CheckElement, CheckFunction, CheckHandle, CheckInstanceof, CheckInterface, CheckMaybe, CheckNode, CheckNull, CheckNumber, CheckObject, CheckOption, CheckOr, CheckPrimitive, CheckProgramSymbolTable, CheckSafeString, CheckString, CheckUndefined, CheckUnknown, CheckValue, META_KIND, OPERAND_TYPES, buildEnum, buildMetas, buildSingleMeta, check, debug, debugSlice, expectStackChange, logOpcode, normalize, normalizeAll, normalizeParsed, opcodeMetadata, recordStackSize, strip, wrap };
168
+ export { CheckArray, CheckBlockSymbolTable, CheckBoolean, CheckDict, CheckDocumentFragment, CheckElement, CheckFunction, CheckHandle, CheckInstanceof, CheckInterface, CheckMaybe, CheckNode, CheckNumber, CheckObject, CheckOption, CheckOr, CheckPrimitive, CheckProgramSymbolTable, CheckSafeString, CheckString, CheckUndefined, CheckUnknown, META_KIND, OPERAND_TYPES, buildEnum, buildMetas, buildSingleMeta, check, debug, debugSlice, logOpcode, normalize, normalizeAll, normalizeParsed, opcodeMetadata, recordStackSize, strip, wrap };