@@ -184,18 +184,42 @@ function maybe_evaluate_builtin(frame, call_expr, expand::Bool)
184
184
else
185
185
return Some {Any} (Core. memoryrefget (getargs (args, frame)... ))
186
186
end
187
+ elseif @static isdefined (Core, :memoryrefmodify! ) && f === Core. memoryrefmodify!
188
+ if nargs == 5
189
+ return Some {Any} (Core. memoryrefmodify! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
190
+ else
191
+ return Some {Any} (Core. memoryrefmodify! (getargs (args, frame)... ))
192
+ end
187
193
elseif @static isdefined (Core, :memoryrefoffset ) && f === Core. memoryrefoffset
188
194
if nargs == 1
189
195
return Some {Any} (Core. memoryrefoffset (@lookup (frame, args[2 ])))
190
196
else
191
197
return Some {Any} (Core. memoryrefoffset (getargs (args, frame)... ))
192
198
end
199
+ elseif @static isdefined (Core, :memoryrefreplace! ) && f === Core. memoryrefreplace!
200
+ if nargs == 6
201
+ return Some {Any} (Core. memoryrefreplace! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ]), @lookup (frame, args[7 ])))
202
+ else
203
+ return Some {Any} (Core. memoryrefreplace! (getargs (args, frame)... ))
204
+ end
193
205
elseif @static isdefined (Core, :memoryrefset! ) && f === Core. memoryrefset!
194
206
if nargs == 4
195
207
return Some {Any} (Core. memoryrefset! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
196
208
else
197
209
return Some {Any} (Core. memoryrefset! (getargs (args, frame)... ))
198
210
end
211
+ elseif @static isdefined (Core, :memoryrefsetonce! ) && f === Core. memoryrefsetonce!
212
+ if nargs == 5
213
+ return Some {Any} (Core. memoryrefsetonce! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
214
+ else
215
+ return Some {Any} (Core. memoryrefsetonce! (getargs (args, frame)... ))
216
+ end
217
+ elseif @static isdefined (Core, :memoryrefswap! ) && f === Core. memoryrefswap!
218
+ if nargs == 4
219
+ return Some {Any} (Core. memoryrefswap! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
220
+ else
221
+ return Some {Any} (Core. memoryrefswap! (getargs (args, frame)... ))
222
+ end
199
223
elseif @static isdefined (Core, :set_binding_type! ) && f === Core. set_binding_type!
200
224
return Some {Any} (Core. set_binding_type! (getargs (args, frame)... ))
201
225
elseif f === Core. sizeof
@@ -264,6 +288,14 @@ function maybe_evaluate_builtin(frame, call_expr, expand::Bool)
264
288
else
265
289
return Some {Any} (modifyfield! (getargs (args, frame)... ))
266
290
end
291
+ elseif @static isdefined (Core, :modifyglobal! ) && f === modifyglobal!
292
+ if nargs == 4
293
+ return Some {Any} (modifyglobal! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
294
+ elseif nargs == 5
295
+ return Some {Any} (modifyglobal! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
296
+ else
297
+ return Some {Any} (modifyglobal! (getargs (args, frame)... ))
298
+ end
267
299
elseif f === nfields
268
300
if nargs == 1
269
301
return Some {Any} (nfields (@lookup (frame, args[2 ])))
@@ -280,6 +312,16 @@ function maybe_evaluate_builtin(frame, call_expr, expand::Bool)
280
312
else
281
313
return Some {Any} (replacefield! (getargs (args, frame)... ))
282
314
end
315
+ elseif @static isdefined (Core, :replaceglobal! ) && f === replaceglobal!
316
+ if nargs == 4
317
+ return Some {Any} (replaceglobal! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
318
+ elseif nargs == 5
319
+ return Some {Any} (replaceglobal! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
320
+ elseif nargs == 6
321
+ return Some {Any} (replaceglobal! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ]), @lookup (frame, args[7 ])))
322
+ else
323
+ return Some {Any} (replaceglobal! (getargs (args, frame)... ))
324
+ end
283
325
elseif f === setfield!
284
326
if nargs == 3
285
327
return Some {Any} (setfield! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
@@ -288,6 +330,16 @@ function maybe_evaluate_builtin(frame, call_expr, expand::Bool)
288
330
else
289
331
return Some {Any} (setfield! (getargs (args, frame)... ))
290
332
end
333
+ elseif @static isdefined (Core, :setfieldonce! ) && f === setfieldonce!
334
+ if nargs == 3
335
+ return Some {Any} (setfieldonce! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
336
+ elseif nargs == 4
337
+ return Some {Any} (setfieldonce! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
338
+ elseif nargs == 5
339
+ return Some {Any} (setfieldonce! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
340
+ else
341
+ return Some {Any} (setfieldonce! (getargs (args, frame)... ))
342
+ end
291
343
elseif @static isdefined (Core, :setglobal! ) && f === setglobal!
292
344
if nargs == 3
293
345
return Some {Any} (setglobal! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
@@ -296,6 +348,16 @@ function maybe_evaluate_builtin(frame, call_expr, expand::Bool)
296
348
else
297
349
return Some {Any} (setglobal! (getargs (args, frame)... ))
298
350
end
351
+ elseif @static isdefined (Core, :setglobalonce! ) && f === setglobalonce!
352
+ if nargs == 3
353
+ return Some {Any} (setglobalonce! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
354
+ elseif nargs == 4
355
+ return Some {Any} (setglobalonce! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
356
+ elseif nargs == 5
357
+ return Some {Any} (setglobalonce! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ]), @lookup (frame, args[6 ])))
358
+ else
359
+ return Some {Any} (setglobalonce! (getargs (args, frame)... ))
360
+ end
299
361
elseif @static isdefined (Core, :swapfield! ) && f === swapfield!
300
362
if nargs == 3
301
363
return Some {Any} (swapfield! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
@@ -304,6 +366,14 @@ function maybe_evaluate_builtin(frame, call_expr, expand::Bool)
304
366
else
305
367
return Some {Any} (swapfield! (getargs (args, frame)... ))
306
368
end
369
+ elseif @static isdefined (Core, :swapglobal! ) && f === swapglobal!
370
+ if nargs == 3
371
+ return Some {Any} (swapglobal! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ])))
372
+ elseif nargs == 4
373
+ return Some {Any} (swapglobal! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
374
+ else
375
+ return Some {Any} (swapglobal! (getargs (args, frame)... ))
376
+ end
307
377
elseif f === throw
308
378
if nargs == 1
309
379
return Some {Any} (throw (@lookup (frame, args[2 ])))
0 commit comments