Passed
Pull Request — master (#123)
by Shinji
01:38
created

OpcodeV81::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 0
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 3
rs 10
1
<?php
2
3
/**
4
 * This file is part of the sj-i/php-profiler package.
5
 *
6
 * (c) sji <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
declare(strict_types=1);
13
14
namespace PhpProfiler\Lib\PhpInternals\Opcodes;
15
16
/** @psalm-immutable */
17
final class OpcodeV81 implements Opcode
18
{
19
    public const ZEND_NOP = 0;
20
    public const ZEND_ADD = 1;
21
    public const ZEND_SUB = 2;
22
    public const ZEND_MUL = 3;
23
    public const ZEND_DIV = 4;
24
    public const ZEND_MOD = 5;
25
    public const ZEND_SL = 6;
26
    public const ZEND_SR = 7;
27
    public const ZEND_CONCAT = 8;
28
    public const ZEND_BW_OR = 9;
29
    public const ZEND_BW_AND = 10;
30
    public const ZEND_BW_XOR = 11;
31
    public const ZEND_POW = 12;
32
    public const ZEND_BW_NOT = 13;
33
    public const ZEND_BOOL_NOT = 14;
34
    public const ZEND_BOOL_XOR = 15;
35
    public const ZEND_IS_IDENTICAL = 16;
36
    public const ZEND_IS_NOT_IDENTICAL = 17;
37
    public const ZEND_IS_EQUAL = 18;
38
    public const ZEND_IS_NOT_EQUAL = 19;
39
    public const ZEND_IS_SMALLER = 20;
40
    public const ZEND_IS_SMALLER_OR_EQUAL = 21;
41
    public const ZEND_ASSIGN = 22;
42
    public const ZEND_ASSIGN_DIM = 23;
43
    public const ZEND_ASSIGN_OBJ = 24;
44
    public const ZEND_ASSIGN_STATIC_PROP = 25;
45
    public const ZEND_ASSIGN_OP = 26;
46
    public const ZEND_ASSIGN_DIM_OP = 27;
47
    public const ZEND_ASSIGN_OBJ_OP = 28;
48
    public const ZEND_ASSIGN_STATIC_PROP_OP = 29;
49
    public const ZEND_ASSIGN_REF = 30;
50
    public const ZEND_QM_ASSIGN = 31;
51
    public const ZEND_ASSIGN_OBJ_REF = 32;
52
    public const ZEND_ASSIGN_STATIC_PROP_REF = 33;
53
    public const ZEND_PRE_INC = 34;
54
    public const ZEND_PRE_DEC = 35;
55
    public const ZEND_POST_INC = 36;
56
    public const ZEND_POST_DEC = 37;
57
    public const ZEND_PRE_INC_STATIC_PROP = 38;
58
    public const ZEND_PRE_DEC_STATIC_PROP = 39;
59
    public const ZEND_POST_INC_STATIC_PROP = 40;
60
    public const ZEND_POST_DEC_STATIC_PROP = 41;
61
    public const ZEND_JMP = 42;
62
    public const ZEND_JMPZ = 43;
63
    public const ZEND_JMPNZ = 44;
64
    public const ZEND_JMPZNZ = 45;
65
    public const ZEND_JMPZ_EX = 46;
66
    public const ZEND_JMPNZ_EX = 47;
67
    public const ZEND_CASE = 48;
68
    public const ZEND_CHECK_VAR = 49;
69
    public const ZEND_SEND_VAR_NO_REF_EX = 50;
70
    public const ZEND_CAST = 51;
71
    public const ZEND_BOOL = 52;
72
    public const ZEND_FAST_CONCAT = 53;
73
    public const ZEND_ROPE_INIT = 54;
74
    public const ZEND_ROPE_ADD = 55;
75
    public const ZEND_ROPE_END = 56;
76
    public const ZEND_BEGIN_SILENCE = 57;
77
    public const ZEND_END_SILENCE = 58;
78
    public const ZEND_INIT_FCALL_BY_NAME = 59;
79
    public const ZEND_DO_FCALL = 60;
80
    public const ZEND_INIT_FCALL = 61;
81
    public const ZEND_RETURN = 62;
82
    public const ZEND_RECV = 63;
83
    public const ZEND_RECV_INIT = 64;
84
    public const ZEND_SEND_VAL = 65;
85
    public const ZEND_SEND_VAR_EX = 66;
86
    public const ZEND_SEND_REF = 67;
87
    public const ZEND_NEW = 68;
88
    public const ZEND_INIT_NS_FCALL_BY_NAME = 69;
89
    public const ZEND_FREE = 70;
90
    public const ZEND_INIT_ARRAY = 71;
91
    public const ZEND_ADD_ARRAY_ELEMENT = 72;
92
    public const ZEND_INCLUDE_OR_EVAL = 73;
93
    public const ZEND_UNSET_VAR = 74;
94
    public const ZEND_UNSET_DIM = 75;
95
    public const ZEND_UNSET_OBJ = 76;
96
    public const ZEND_FE_RESET_R = 77;
97
    public const ZEND_FE_FETCH_R = 78;
98
    public const ZEND_EXIT = 79;
99
    public const ZEND_FETCH_R = 80;
100
    public const ZEND_FETCH_DIM_R = 81;
101
    public const ZEND_FETCH_OBJ_R = 82;
102
    public const ZEND_FETCH_W = 83;
103
    public const ZEND_FETCH_DIM_W = 84;
104
    public const ZEND_FETCH_OBJ_W = 85;
105
    public const ZEND_FETCH_RW = 86;
106
    public const ZEND_FETCH_DIM_RW = 87;
107
    public const ZEND_FETCH_OBJ_RW = 88;
108
    public const ZEND_FETCH_IS = 89;
109
    public const ZEND_FETCH_DIM_IS = 90;
110
    public const ZEND_FETCH_OBJ_IS = 91;
111
    public const ZEND_FETCH_FUNC_ARG = 92;
112
    public const ZEND_FETCH_DIM_FUNC_ARG = 93;
113
    public const ZEND_FETCH_OBJ_FUNC_ARG = 94;
114
    public const ZEND_FETCH_UNSET = 95;
115
    public const ZEND_FETCH_DIM_UNSET = 96;
116
    public const ZEND_FETCH_OBJ_UNSET = 97;
117
    public const ZEND_FETCH_LIST_R = 98;
118
    public const ZEND_FETCH_CONSTANT = 99;
119
    public const ZEND_CHECK_FUNC_ARG = 100;
120
    public const ZEND_EXT_STMT = 101;
121
    public const ZEND_EXT_FCALL_BEGIN = 102;
122
    public const ZEND_EXT_FCALL_END = 103;
123
    public const ZEND_EXT_NOP = 104;
124
    public const ZEND_TICKS = 105;
125
    public const ZEND_SEND_VAR_NO_REF = 106;
126
    public const ZEND_CATCH = 107;
127
    public const ZEND_THROW = 108;
128
    public const ZEND_FETCH_CLASS = 109;
129
    public const ZEND_CLONE = 110;
130
    public const ZEND_RETURN_BY_REF = 111;
131
    public const ZEND_INIT_METHOD_CALL = 112;
132
    public const ZEND_INIT_STATIC_METHOD_CALL = 113;
133
    public const ZEND_ISSET_ISEMPTY_VAR = 114;
134
    public const ZEND_ISSET_ISEMPTY_DIM_OBJ = 115;
135
    public const ZEND_SEND_VAL_EX = 116;
136
    public const ZEND_SEND_VAR = 117;
137
    public const ZEND_INIT_USER_CALL = 118;
138
    public const ZEND_SEND_ARRAY = 119;
139
    public const ZEND_SEND_USER = 120;
140
    public const ZEND_STRLEN = 121;
141
    public const ZEND_DEFINED = 122;
142
    public const ZEND_TYPE_CHECK = 123;
143
    public const ZEND_VERIFY_RETURN_TYPE = 124;
144
    public const ZEND_FE_RESET_RW = 125;
145
    public const ZEND_FE_FETCH_RW = 126;
146
    public const ZEND_FE_FREE = 127;
147
    public const ZEND_INIT_DYNAMIC_CALL = 128;
148
    public const ZEND_DO_ICALL = 129;
149
    public const ZEND_DO_UCALL = 130;
150
    public const ZEND_DO_FCALL_BY_NAME = 131;
151
    public const ZEND_PRE_INC_OBJ = 132;
152
    public const ZEND_PRE_DEC_OBJ = 133;
153
    public const ZEND_POST_INC_OBJ = 134;
154
    public const ZEND_POST_DEC_OBJ = 135;
155
    public const ZEND_ECHO = 136;
156
    public const ZEND_OP_DATA = 137;
157
    public const ZEND_INSTANCEOF = 138;
158
    public const ZEND_GENERATOR_CREATE = 139;
159
    public const ZEND_MAKE_REF = 140;
160
    public const ZEND_DECLARE_FUNCTION = 141;
161
    public const ZEND_DECLARE_LAMBDA_FUNCTION = 142;
162
    public const ZEND_DECLARE_CONST = 143;
163
    public const ZEND_DECLARE_CLASS = 144;
164
    public const ZEND_DECLARE_CLASS_DELAYED = 145;
165
    public const ZEND_DECLARE_ANON_CLASS = 146;
166
    public const ZEND_ADD_ARRAY_UNPACK = 147;
167
    public const ZEND_ISSET_ISEMPTY_PROP_OBJ = 148;
168
    public const ZEND_HANDLE_EXCEPTION = 149;
169
    public const ZEND_USER_OPCODE = 150;
170
    public const ZEND_ASSERT_CHECK = 151;
171
    public const ZEND_JMP_SET = 152;
172
    public const ZEND_UNSET_CV = 153;
173
    public const ZEND_ISSET_ISEMPTY_CV = 154;
174
    public const ZEND_FETCH_LIST_W = 155;
175
    public const ZEND_SEPARATE = 156;
176
    public const ZEND_FETCH_CLASS_NAME = 157;
177
    public const ZEND_CALL_TRAMPOLINE = 158;
178
    public const ZEND_DISCARD_EXCEPTION = 159;
179
    public const ZEND_YIELD = 160;
180
    public const ZEND_GENERATOR_RETURN = 161;
181
    public const ZEND_FAST_CALL = 162;
182
    public const ZEND_FAST_RET = 163;
183
    public const ZEND_RECV_VARIADIC = 164;
184
    public const ZEND_SEND_UNPACK = 165;
185
    public const ZEND_YIELD_FROM = 166;
186
    public const ZEND_COPY_TMP = 167;
187
    public const ZEND_BIND_GLOBAL = 168;
188
    public const ZEND_COALESCE = 169;
189
    public const ZEND_SPACESHIP = 170;
190
    public const ZEND_FUNC_NUM_ARGS = 171;
191
    public const ZEND_FUNC_GET_ARGS = 172;
192
    public const ZEND_FETCH_STATIC_PROP_R = 173;
193
    public const ZEND_FETCH_STATIC_PROP_W = 174;
194
    public const ZEND_FETCH_STATIC_PROP_RW = 175;
195
    public const ZEND_FETCH_STATIC_PROP_IS = 176;
196
    public const ZEND_FETCH_STATIC_PROP_FUNC_ARG = 177;
197
    public const ZEND_FETCH_STATIC_PROP_UNSET = 178;
198
    public const ZEND_UNSET_STATIC_PROP = 179;
199
    public const ZEND_ISSET_ISEMPTY_STATIC_PROP = 180;
200
    public const ZEND_FETCH_CLASS_CONSTANT = 181;
201
    public const ZEND_BIND_LEXICAL = 182;
202
    public const ZEND_BIND_STATIC = 183;
203
    public const ZEND_FETCH_THIS = 184;
204
    public const ZEND_SEND_FUNC_ARG = 185;
205
    public const ZEND_ISSET_ISEMPTY_THIS = 186;
206
    public const ZEND_SWITCH_LONG = 187;
207
    public const ZEND_SWITCH_STRING = 188;
208
    public const ZEND_IN_ARRAY = 189;
209
    public const ZEND_COUNT = 190;
210
    public const ZEND_GET_CLASS = 191;
211
    public const ZEND_GET_CALLED_CLASS = 192;
212
    public const ZEND_GET_TYPE = 193;
213
    public const ZEND_ARRAY_KEY_EXISTS = 194;
214
    public const ZEND_MATCH = 195;
215
    public const ZEND_CASE_STRICT = 196;
216
    public const ZEND_MATCH_ERROR = 197;
217
    public const ZEND_JMP_NULL = 198;
218
    public const ZEND_CHECK_UNDEF_ARGS = 199;
219
    public const ZEND_FETCH_GLOBALS = 200;
220
    public const ZEND_VERIFY_NEVER_TYPE = 201;
221
    public const ZEND_CALLABLE_CONVERT = 202;
222
223
    public const OPCODES = [
224
        self::ZEND_NOP,
225
        self::ZEND_ADD,
226
        self::ZEND_SUB,
227
        self::ZEND_MUL,
228
        self::ZEND_DIV,
229
        self::ZEND_MOD,
230
        self::ZEND_SL,
231
        self::ZEND_SR,
232
        self::ZEND_CONCAT,
233
        self::ZEND_BW_OR,
234
        self::ZEND_BW_AND,
235
        self::ZEND_BW_XOR,
236
        self::ZEND_POW,
237
        self::ZEND_BW_NOT,
238
        self::ZEND_BOOL_NOT,
239
        self::ZEND_BOOL_XOR,
240
        self::ZEND_IS_IDENTICAL,
241
        self::ZEND_IS_NOT_IDENTICAL,
242
        self::ZEND_IS_EQUAL,
243
        self::ZEND_IS_NOT_EQUAL,
244
        self::ZEND_IS_SMALLER,
245
        self::ZEND_IS_SMALLER_OR_EQUAL,
246
        self::ZEND_ASSIGN,
247
        self::ZEND_ASSIGN_DIM,
248
        self::ZEND_ASSIGN_OBJ,
249
        self::ZEND_ASSIGN_STATIC_PROP,
250
        self::ZEND_ASSIGN_OP,
251
        self::ZEND_ASSIGN_DIM_OP,
252
        self::ZEND_ASSIGN_OBJ_OP,
253
        self::ZEND_ASSIGN_STATIC_PROP_OP,
254
        self::ZEND_ASSIGN_REF,
255
        self::ZEND_QM_ASSIGN,
256
        self::ZEND_ASSIGN_OBJ_REF,
257
        self::ZEND_ASSIGN_STATIC_PROP_REF,
258
        self::ZEND_PRE_INC,
259
        self::ZEND_PRE_DEC,
260
        self::ZEND_POST_INC,
261
        self::ZEND_POST_DEC,
262
        self::ZEND_PRE_INC_STATIC_PROP,
263
        self::ZEND_PRE_DEC_STATIC_PROP,
264
        self::ZEND_POST_INC_STATIC_PROP,
265
        self::ZEND_POST_DEC_STATIC_PROP,
266
        self::ZEND_JMP,
267
        self::ZEND_JMPZ,
268
        self::ZEND_JMPNZ,
269
        self::ZEND_JMPZNZ,
270
        self::ZEND_JMPZ_EX,
271
        self::ZEND_JMPNZ_EX,
272
        self::ZEND_CASE,
273
        self::ZEND_CHECK_VAR,
274
        self::ZEND_SEND_VAR_NO_REF_EX,
275
        self::ZEND_CAST,
276
        self::ZEND_BOOL,
277
        self::ZEND_FAST_CONCAT,
278
        self::ZEND_ROPE_INIT,
279
        self::ZEND_ROPE_ADD,
280
        self::ZEND_ROPE_END,
281
        self::ZEND_BEGIN_SILENCE,
282
        self::ZEND_END_SILENCE,
283
        self::ZEND_INIT_FCALL_BY_NAME,
284
        self::ZEND_DO_FCALL,
285
        self::ZEND_INIT_FCALL,
286
        self::ZEND_RETURN,
287
        self::ZEND_RECV,
288
        self::ZEND_RECV_INIT,
289
        self::ZEND_SEND_VAL,
290
        self::ZEND_SEND_VAR_EX,
291
        self::ZEND_SEND_REF,
292
        self::ZEND_NEW,
293
        self::ZEND_INIT_NS_FCALL_BY_NAME,
294
        self::ZEND_FREE,
295
        self::ZEND_INIT_ARRAY,
296
        self::ZEND_ADD_ARRAY_ELEMENT,
297
        self::ZEND_INCLUDE_OR_EVAL,
298
        self::ZEND_UNSET_VAR,
299
        self::ZEND_UNSET_DIM,
300
        self::ZEND_UNSET_OBJ,
301
        self::ZEND_FE_RESET_R,
302
        self::ZEND_FE_FETCH_R,
303
        self::ZEND_EXIT,
304
        self::ZEND_FETCH_R,
305
        self::ZEND_FETCH_DIM_R,
306
        self::ZEND_FETCH_OBJ_R,
307
        self::ZEND_FETCH_W,
308
        self::ZEND_FETCH_DIM_W,
309
        self::ZEND_FETCH_OBJ_W,
310
        self::ZEND_FETCH_RW,
311
        self::ZEND_FETCH_DIM_RW,
312
        self::ZEND_FETCH_OBJ_RW,
313
        self::ZEND_FETCH_IS,
314
        self::ZEND_FETCH_DIM_IS,
315
        self::ZEND_FETCH_OBJ_IS,
316
        self::ZEND_FETCH_FUNC_ARG,
317
        self::ZEND_FETCH_DIM_FUNC_ARG,
318
        self::ZEND_FETCH_OBJ_FUNC_ARG,
319
        self::ZEND_FETCH_UNSET,
320
        self::ZEND_FETCH_DIM_UNSET,
321
        self::ZEND_FETCH_OBJ_UNSET,
322
        self::ZEND_FETCH_LIST_R,
323
        self::ZEND_FETCH_CONSTANT,
324
        self::ZEND_CHECK_FUNC_ARG,
325
        self::ZEND_EXT_STMT,
326
        self::ZEND_EXT_FCALL_BEGIN,
327
        self::ZEND_EXT_FCALL_END,
328
        self::ZEND_EXT_NOP,
329
        self::ZEND_TICKS,
330
        self::ZEND_SEND_VAR_NO_REF,
331
        self::ZEND_CATCH,
332
        self::ZEND_THROW,
333
        self::ZEND_FETCH_CLASS,
334
        self::ZEND_CLONE,
335
        self::ZEND_RETURN_BY_REF,
336
        self::ZEND_INIT_METHOD_CALL,
337
        self::ZEND_INIT_STATIC_METHOD_CALL,
338
        self::ZEND_ISSET_ISEMPTY_VAR,
339
        self::ZEND_ISSET_ISEMPTY_DIM_OBJ,
340
        self::ZEND_SEND_VAL_EX,
341
        self::ZEND_SEND_VAR,
342
        self::ZEND_INIT_USER_CALL,
343
        self::ZEND_SEND_ARRAY,
344
        self::ZEND_SEND_USER,
345
        self::ZEND_STRLEN,
346
        self::ZEND_DEFINED,
347
        self::ZEND_TYPE_CHECK,
348
        self::ZEND_VERIFY_RETURN_TYPE,
349
        self::ZEND_FE_RESET_RW,
350
        self::ZEND_FE_FETCH_RW,
351
        self::ZEND_FE_FREE,
352
        self::ZEND_INIT_DYNAMIC_CALL,
353
        self::ZEND_DO_ICALL,
354
        self::ZEND_DO_UCALL,
355
        self::ZEND_DO_FCALL_BY_NAME,
356
        self::ZEND_PRE_INC_OBJ,
357
        self::ZEND_PRE_DEC_OBJ,
358
        self::ZEND_POST_INC_OBJ,
359
        self::ZEND_POST_DEC_OBJ,
360
        self::ZEND_ECHO,
361
        self::ZEND_OP_DATA,
362
        self::ZEND_INSTANCEOF,
363
        self::ZEND_GENERATOR_CREATE,
364
        self::ZEND_MAKE_REF,
365
        self::ZEND_DECLARE_FUNCTION,
366
        self::ZEND_DECLARE_LAMBDA_FUNCTION,
367
        self::ZEND_DECLARE_CONST,
368
        self::ZEND_DECLARE_CLASS,
369
        self::ZEND_DECLARE_CLASS_DELAYED,
370
        self::ZEND_DECLARE_ANON_CLASS,
371
        self::ZEND_ADD_ARRAY_UNPACK,
372
        self::ZEND_ISSET_ISEMPTY_PROP_OBJ,
373
        self::ZEND_HANDLE_EXCEPTION,
374
        self::ZEND_USER_OPCODE,
375
        self::ZEND_ASSERT_CHECK,
376
        self::ZEND_JMP_SET,
377
        self::ZEND_UNSET_CV,
378
        self::ZEND_ISSET_ISEMPTY_CV,
379
        self::ZEND_FETCH_LIST_W,
380
        self::ZEND_SEPARATE,
381
        self::ZEND_FETCH_CLASS_NAME,
382
        self::ZEND_CALL_TRAMPOLINE,
383
        self::ZEND_DISCARD_EXCEPTION,
384
        self::ZEND_YIELD,
385
        self::ZEND_GENERATOR_RETURN,
386
        self::ZEND_FAST_CALL,
387
        self::ZEND_FAST_RET,
388
        self::ZEND_RECV_VARIADIC,
389
        self::ZEND_SEND_UNPACK,
390
        self::ZEND_YIELD_FROM,
391
        self::ZEND_COPY_TMP,
392
        self::ZEND_BIND_GLOBAL,
393
        self::ZEND_COALESCE,
394
        self::ZEND_SPACESHIP,
395
        self::ZEND_FUNC_NUM_ARGS,
396
        self::ZEND_FUNC_GET_ARGS,
397
        self::ZEND_FETCH_STATIC_PROP_R,
398
        self::ZEND_FETCH_STATIC_PROP_W,
399
        self::ZEND_FETCH_STATIC_PROP_RW,
400
        self::ZEND_FETCH_STATIC_PROP_IS,
401
        self::ZEND_FETCH_STATIC_PROP_FUNC_ARG,
402
        self::ZEND_FETCH_STATIC_PROP_UNSET,
403
        self::ZEND_UNSET_STATIC_PROP,
404
        self::ZEND_ISSET_ISEMPTY_STATIC_PROP,
405
        self::ZEND_FETCH_CLASS_CONSTANT,
406
        self::ZEND_BIND_LEXICAL,
407
        self::ZEND_BIND_STATIC,
408
        self::ZEND_FETCH_THIS,
409
        self::ZEND_SEND_FUNC_ARG,
410
        self::ZEND_ISSET_ISEMPTY_THIS,
411
        self::ZEND_SWITCH_LONG,
412
        self::ZEND_SWITCH_STRING,
413
        self::ZEND_IN_ARRAY,
414
        self::ZEND_COUNT,
415
        self::ZEND_GET_CLASS,
416
        self::ZEND_GET_CALLED_CLASS,
417
        self::ZEND_GET_TYPE,
418
        self::ZEND_ARRAY_KEY_EXISTS,
419
        self::ZEND_MATCH,
420
        self::ZEND_CASE_STRICT,
421
        self::ZEND_MATCH_ERROR,
422
        self::ZEND_JMP_NULL,
423
        self::ZEND_CHECK_UNDEF_ARGS,
424
        self::ZEND_FETCH_GLOBALS,
425
        self::ZEND_VERIFY_NEVER_TYPE,
426
        self::ZEND_CALLABLE_CONVERT,
427
    ];
428
429
    private const OPCODE_NAMES = [
430
        'ZEND_NOP',
431
        'ZEND_ADD',
432
        'ZEND_SUB',
433
        'ZEND_MUL',
434
        'ZEND_DIV',
435
        'ZEND_MOD',
436
        'ZEND_SL',
437
        'ZEND_SR',
438
        'ZEND_CONCAT',
439
        'ZEND_BW_OR',
440
        'ZEND_BW_AND',
441
        'ZEND_BW_XOR',
442
        'ZEND_POW',
443
        'ZEND_BW_NOT',
444
        'ZEND_BOOL_NOT',
445
        'ZEND_BOOL_XOR',
446
        'ZEND_IS_IDENTICAL',
447
        'ZEND_IS_NOT_IDENTICAL',
448
        'ZEND_IS_EQUAL',
449
        'ZEND_IS_NOT_EQUAL',
450
        'ZEND_IS_SMALLER',
451
        'ZEND_IS_SMALLER_OR_EQUAL',
452
        'ZEND_ASSIGN',
453
        'ZEND_ASSIGN_DIM',
454
        'ZEND_ASSIGN_OBJ',
455
        'ZEND_ASSIGN_STATIC_PROP',
456
        'ZEND_ASSIGN_OP',
457
        'ZEND_ASSIGN_DIM_OP',
458
        'ZEND_ASSIGN_OBJ_OP',
459
        'ZEND_ASSIGN_STATIC_PROP_OP',
460
        'ZEND_ASSIGN_REF',
461
        'ZEND_QM_ASSIGN',
462
        'ZEND_ASSIGN_OBJ_REF',
463
        'ZEND_ASSIGN_STATIC_PROP_REF',
464
        'ZEND_PRE_INC',
465
        'ZEND_PRE_DEC',
466
        'ZEND_POST_INC',
467
        'ZEND_POST_DEC',
468
        'ZEND_PRE_INC_STATIC_PROP',
469
        'ZEND_PRE_DEC_STATIC_PROP',
470
        'ZEND_POST_INC_STATIC_PROP',
471
        'ZEND_POST_DEC_STATIC_PROP',
472
        'ZEND_JMP',
473
        'ZEND_JMPZ',
474
        'ZEND_JMPNZ',
475
        'ZEND_JMPZNZ',
476
        'ZEND_JMPZ_EX',
477
        'ZEND_JMPNZ_EX',
478
        'ZEND_CASE',
479
        'ZEND_CHECK_VAR',
480
        'ZEND_SEND_VAR_NO_REF_EX',
481
        'ZEND_CAST',
482
        'ZEND_BOOL',
483
        'ZEND_FAST_CONCAT',
484
        'ZEND_ROPE_INIT',
485
        'ZEND_ROPE_ADD',
486
        'ZEND_ROPE_END',
487
        'ZEND_BEGIN_SILENCE',
488
        'ZEND_END_SILENCE',
489
        'ZEND_INIT_FCALL_BY_NAME',
490
        'ZEND_DO_FCALL',
491
        'ZEND_INIT_FCALL',
492
        'ZEND_RETURN',
493
        'ZEND_RECV',
494
        'ZEND_RECV_INIT',
495
        'ZEND_SEND_VAL',
496
        'ZEND_SEND_VAR_EX',
497
        'ZEND_SEND_REF',
498
        'ZEND_NEW',
499
        'ZEND_INIT_NS_FCALL_BY_NAME',
500
        'ZEND_FREE',
501
        'ZEND_INIT_ARRAY',
502
        'ZEND_ADD_ARRAY_ELEMENT',
503
        'ZEND_INCLUDE_OR_EVAL',
504
        'ZEND_UNSET_VAR',
505
        'ZEND_UNSET_DIM',
506
        'ZEND_UNSET_OBJ',
507
        'ZEND_FE_RESET_R',
508
        'ZEND_FE_FETCH_R',
509
        'ZEND_EXIT',
510
        'ZEND_FETCH_R',
511
        'ZEND_FETCH_DIM_R',
512
        'ZEND_FETCH_OBJ_R',
513
        'ZEND_FETCH_W',
514
        'ZEND_FETCH_DIM_W',
515
        'ZEND_FETCH_OBJ_W',
516
        'ZEND_FETCH_RW',
517
        'ZEND_FETCH_DIM_RW',
518
        'ZEND_FETCH_OBJ_RW',
519
        'ZEND_FETCH_IS',
520
        'ZEND_FETCH_DIM_IS',
521
        'ZEND_FETCH_OBJ_IS',
522
        'ZEND_FETCH_FUNC_ARG',
523
        'ZEND_FETCH_DIM_FUNC_ARG',
524
        'ZEND_FETCH_OBJ_FUNC_ARG',
525
        'ZEND_FETCH_UNSET',
526
        'ZEND_FETCH_DIM_UNSET',
527
        'ZEND_FETCH_OBJ_UNSET',
528
        'ZEND_FETCH_LIST_R',
529
        'ZEND_FETCH_CONSTANT',
530
        'ZEND_CHECK_FUNC_ARG',
531
        'ZEND_EXT_STMT',
532
        'ZEND_EXT_FCALL_BEGIN',
533
        'ZEND_EXT_FCALL_END',
534
        'ZEND_EXT_NOP',
535
        'ZEND_TICKS',
536
        'ZEND_SEND_VAR_NO_REF',
537
        'ZEND_CATCH',
538
        'ZEND_THROW',
539
        'ZEND_FETCH_CLASS',
540
        'ZEND_CLONE',
541
        'ZEND_RETURN_BY_REF',
542
        'ZEND_INIT_METHOD_CALL',
543
        'ZEND_INIT_STATIC_METHOD_CALL',
544
        'ZEND_ISSET_ISEMPTY_VAR',
545
        'ZEND_ISSET_ISEMPTY_DIM_OBJ',
546
        'ZEND_SEND_VAL_EX',
547
        'ZEND_SEND_VAR',
548
        'ZEND_INIT_USER_CALL',
549
        'ZEND_SEND_ARRAY',
550
        'ZEND_SEND_USER',
551
        'ZEND_STRLEN',
552
        'ZEND_DEFINED',
553
        'ZEND_TYPE_CHECK',
554
        'ZEND_VERIFY_RETURN_TYPE',
555
        'ZEND_FE_RESET_RW',
556
        'ZEND_FE_FETCH_RW',
557
        'ZEND_FE_FREE',
558
        'ZEND_INIT_DYNAMIC_CALL',
559
        'ZEND_DO_ICALL',
560
        'ZEND_DO_UCALL',
561
        'ZEND_DO_FCALL_BY_NAME',
562
        'ZEND_PRE_INC_OBJ',
563
        'ZEND_PRE_DEC_OBJ',
564
        'ZEND_POST_INC_OBJ',
565
        'ZEND_POST_DEC_OBJ',
566
        'ZEND_ECHO',
567
        'ZEND_OP_DATA',
568
        'ZEND_INSTANCEOF',
569
        'ZEND_GENERATOR_CREATE',
570
        'ZEND_MAKE_REF',
571
        'ZEND_DECLARE_FUNCTION',
572
        'ZEND_DECLARE_LAMBDA_FUNCTION',
573
        'ZEND_DECLARE_CONST',
574
        'ZEND_DECLARE_CLASS',
575
        'ZEND_DECLARE_CLASS_DELAYED',
576
        'ZEND_DECLARE_ANON_CLASS',
577
        'ZEND_ADD_ARRAY_UNPACK',
578
        'ZEND_ISSET_ISEMPTY_PROP_OBJ',
579
        'ZEND_HANDLE_EXCEPTION',
580
        'ZEND_USER_OPCODE',
581
        'ZEND_ASSERT_CHECK',
582
        'ZEND_JMP_SET',
583
        'ZEND_UNSET_CV',
584
        'ZEND_ISSET_ISEMPTY_CV',
585
        'ZEND_FETCH_LIST_W',
586
        'ZEND_SEPARATE',
587
        'ZEND_FETCH_CLASS_NAME',
588
        'ZEND_CALL_TRAMPOLINE',
589
        'ZEND_DISCARD_EXCEPTION',
590
        'ZEND_YIELD',
591
        'ZEND_GENERATOR_RETURN',
592
        'ZEND_FAST_CALL',
593
        'ZEND_FAST_RET',
594
        'ZEND_RECV_VARIADIC',
595
        'ZEND_SEND_UNPACK',
596
        'ZEND_YIELD_FROM',
597
        'ZEND_COPY_TMP',
598
        'ZEND_BIND_GLOBAL',
599
        'ZEND_COALESCE',
600
        'ZEND_SPACESHIP',
601
        'ZEND_FUNC_NUM_ARGS',
602
        'ZEND_FUNC_GET_ARGS',
603
        'ZEND_FETCH_STATIC_PROP_R',
604
        'ZEND_FETCH_STATIC_PROP_W',
605
        'ZEND_FETCH_STATIC_PROP_RW',
606
        'ZEND_FETCH_STATIC_PROP_IS',
607
        'ZEND_FETCH_STATIC_PROP_FUNC_ARG',
608
        'ZEND_FETCH_STATIC_PROP_UNSET',
609
        'ZEND_UNSET_STATIC_PROP',
610
        'ZEND_ISSET_ISEMPTY_STATIC_PROP',
611
        'ZEND_FETCH_CLASS_CONSTANT',
612
        'ZEND_BIND_LEXICAL',
613
        'ZEND_BIND_STATIC',
614
        'ZEND_FETCH_THIS',
615
        'ZEND_SEND_FUNC_ARG',
616
        'ZEND_ISSET_ISEMPTY_THIS',
617
        'ZEND_SWITCH_LONG',
618
        'ZEND_SWITCH_STRING',
619
        'ZEND_IN_ARRAY',
620
        'ZEND_COUNT',
621
        'ZEND_GET_CLASS',
622
        'ZEND_GET_CALLED_CLASS',
623
        'ZEND_GET_TYPE',
624
        'ZEND_ARRAY_KEY_EXISTS',
625
        'ZEND_MATCH',
626
        'ZEND_CASE_STRICT',
627
        'ZEND_MATCH_ERROR',
628
        'ZEND_JMP_NULL',
629
        'ZEND_CHECK_UNDEF_ARGS',
630
        'ZEND_FETCH_GLOBALS',
631
        'ZEND_VERIFY_NEVER_TYPE',
632
        'ZEND_CALLABLE_CONVERT',
633
    ];
634
635
    public function __construct(
636
        private int $opcode
637
    ) {
638
    }
639
640
    public function getName(): string
641
    {
642
        return self::OPCODE_NAMES[$this->opcode] ?? '';
643
    }
644
}
645