VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-full/dist/js/mdls__absol__src__SCLang__SCScope.js
/*** 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;

VaKeR 2022