@@ -184,18 +184,42 @@ function maybe_evaluate_builtin(frame, call_expr, expand::Bool)
184184 else
185185 return Some {Any} (Core. memoryrefget (getargs (args, frame)... ))
186186 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
187193 elseif @static isdefined (Core, :memoryrefoffset ) && f === Core. memoryrefoffset
188194 if nargs == 1
189195 return Some {Any} (Core. memoryrefoffset (@lookup (frame, args[2 ])))
190196 else
191197 return Some {Any} (Core. memoryrefoffset (getargs (args, frame)... ))
192198 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
193205 elseif @static isdefined (Core, :memoryrefset! ) && f === Core. memoryrefset!
194206 if nargs == 4
195207 return Some {Any} (Core. memoryrefset! (@lookup (frame, args[2 ]), @lookup (frame, args[3 ]), @lookup (frame, args[4 ]), @lookup (frame, args[5 ])))
196208 else
197209 return Some {Any} (Core. memoryrefset! (getargs (args, frame)... ))
198210 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
199223 elseif @static isdefined (Core, :set_binding_type! ) && f === Core. set_binding_type!
200224 return Some {Any} (Core. set_binding_type! (getargs (args, frame)... ))
201225 elseif f === Core. sizeof
@@ -264,6 +288,14 @@ function maybe_evaluate_builtin(frame, call_expr, expand::Bool)
264288 else
265289 return Some {Any} (modifyfield! (getargs (args, frame)... ))
266290 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
267299 elseif f === nfields
268300 if nargs == 1
269301 return Some {Any} (nfields (@lookup (frame, args[2 ])))
@@ -280,6 +312,16 @@ function maybe_evaluate_builtin(frame, call_expr, expand::Bool)
280312 else
281313 return Some {Any} (replacefield! (getargs (args, frame)... ))
282314 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
283325 elseif f === setfield!
284326 if nargs == 3
285327 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)
288330 else
289331 return Some {Any} (setfield! (getargs (args, frame)... ))
290332 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
291343 elseif @static isdefined (Core, :setglobal! ) && f === setglobal!
292344 if nargs == 3
293345 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)
296348 else
297349 return Some {Any} (setglobal! (getargs (args, frame)... ))
298350 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
299361 elseif @static isdefined (Core, :swapfield! ) && f === swapfield!
300362 if nargs == 3
301363 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)
304366 else
305367 return Some {Any} (swapfield! (getargs (args, frame)... ))
306368 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
307377 elseif f === throw
308378 if nargs == 1
309379 return Some {Any} (throw (@lookup (frame, args[2 ])))
0 commit comments