// 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();
geb = new BasicBlock(cfg, new Label("_GLOBAL_ENSURE_BLOCK"));