![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/libs/absol-full/dist/js/ |
Upload File : |
/*** module: node_modules/absol/src/SCLang/SCScope.js ***/ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _Ref = _interopRequireDefault(require("../AppPattern/Ref")); var _Const = _interopRequireDefault(require("../AppPattern/Const")); /*** * * @param {SCScope=} parent * @constructor */ function SCScope(parent) { this.parent = parent; /*** * * @type {Object<string, Ref|Const>} */ this.data = {}; } SCScope.prototype.set = function (name, value) { var ref = this.findRef(name); if (!ref) throw new Error('"' + name + '" was not declared!'); if (ref.set) { ref.set(value); } else { throw new Error('"' + name + '" defined with const cannot be modified!'); } }; SCScope.prototype.get = function (name) { var ref = this.findRef(name); if (!ref) throw new Error('"' + name + '" was not declared!'); return ref.get(); }; SCScope.prototype.declareConst = function (name, value, force, type) { if (name in this.data && !force) throw new Error("Cannot redefine variable, " + name + " is already declared!"); this.data[name] = new _Const.default(value, type); }; SCScope.prototype.declareVar = function (name, value, force, type) { if (name in this.data && !force) throw new Error("Cannot redefine variable, " + name + " is already declared!"); this.data[name] = new _Ref.default(value, type); }; SCScope.prototype.revoke = function (name) { delete this.data[name]; }; /*** * * @param {string} name * @return {Ref|Const|null} */ SCScope.prototype.findRef = function (name) { return this.data[name] || this.parent && this.parent.findRef(name) || null; }; /*** * * @param {string} name * @return {SCScope|null} */ SCScope.prototype.findScope = function (name) { if (this.data[name]) return this; if (this.parent) return this.parent.findScope(name); return null; }; var _default = SCScope; exports.default = _default;