// If the scope uses $_ or $~ family of vars, has local load/stores, or if its binding has escaped, we have
// to allocate a dynamic scope for it and add binding push/pop instructions.
if ((scope instanceof IRMethod) || (scope instanceof IRScriptBody) || (scope instanceof IRModuleBody)) {
if (scope.bindingHasEscaped() || scope.usesBackrefOrLastline() || scopeHasLocalVarStores || scopeHasUnrescuedExceptions) {
// Push
entryBB.addInstr(new PushFrameInstr());
entryBB.addInstr(new PushBindingInstr(scope));
// Allocate GEB if necessary for popping binding
if (geb == null && (scopeHasLocalVarStores || scopeHasUnrescuedExceptions)) {
Variable exc = scope.getNewTemporaryVariable();