404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@13.58.73.59: ~ $
<?php

/*
 * This file is part of Psy Shell.
 *
 * (c) 2012-2023 Justin Hileman
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Psy;

use Psy\Exception\BreakException;
use Psy\Exception\ThrowUpException;

/**
 * The Psy Shell's execution loop scope.
 *
 * @todo Once we're on PHP 5.5, we can switch ExecutionClosure to a generator
 * and get rid of the duplicate closure implementations :)
 */
class ExecutionLoopClosure extends ExecutionClosure
{
    /**
     * @param Shell $__psysh__
     */
    public function __construct(Shell $__psysh__)
    {
        $this->setClosure($__psysh__, function () use ($__psysh__) {
            // Restore execution scope variables
            \extract($__psysh__->getScopeVariables(false));

            while (true) {
                $__psysh__->beforeLoop();

                try {
                    $__psysh__->getInput();

                    try {
                        // Pull in any new execution scope variables
                        if ($__psysh__->getLastExecSuccess()) {
                            \extract($__psysh__->getScopeVariablesDiff(\get_defined_vars()));
                        }

                        // Buffer stdout; we'll need it later
                        \ob_start([$__psysh__, 'writeStdout'], 1);

                        // Convert all errors to exceptions
                        \set_error_handler([$__psysh__, 'handleError']);

                        // Evaluate the current code buffer
                        $_ = eval($__psysh__->onExecute($__psysh__->flushCode() ?: ExecutionClosure::NOOP_INPUT));
                    } catch (\Throwable $_e) {
                        // Clean up on our way out.
                        if (\ob_get_level() > 0) {
                            \ob_end_clean();
                        }

                        throw $_e;
                    } finally {
                        // Won't be needing this anymore
                        \restore_error_handler();
                    }

                    // Flush stdout (write to shell output, plus save to magic variable)
                    \ob_end_flush();

                    // Save execution scope variables for next time
                    $__psysh__->setScopeVariables(\get_defined_vars());

                    $__psysh__->writeReturnValue($_);
                } catch (BreakException $_e) {
                    $__psysh__->writeException($_e);

                    return;
                } catch (ThrowUpException $_e) {
                    $__psysh__->writeException($_e);

                    throw $_e;
                } catch (\Throwable $_e) {
                    $__psysh__->writeException($_e);
                }

                $__psysh__->afterLoop();
            }
        });
    }
}

Filemanager

Name Type Size Permission Actions
CodeCleaner Folder 0755
Command Folder 0755
Exception Folder 0755
ExecutionLoop Folder 0755
Formatter Folder 0755
Input Folder 0755
Output Folder 0755
Readline Folder 0755
Reflection Folder 0755
Sudo Folder 0755
TabCompletion Folder 0755
Util Folder 0755
VarDumper Folder 0755
VersionUpdater Folder 0755
CodeCleaner.php File 11.86 KB 0644
ConfigPaths.php File 11.39 KB 0644
Configuration.php File 54.35 KB 0644
Context.php File 7.71 KB 0644
ContextAware.php File 567 B 0644
EnvInterface.php File 443 B 0644
ExecutionClosure.php File 2.25 KB 0644
ExecutionLoopClosure.php File 2.81 KB 0644
ParserFactory.php File 1.58 KB 0644
Shell.php File 47.2 KB 0644
Sudo.php File 5.28 KB 0644
SuperglobalsEnv.php File 620 B 0644
functions.php File 16.51 KB 0644