UNPKG

dynvar

Version:

Dynamic variable support for JS

36 lines (33 loc) 840 B
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vars = Symbol('VARS'); var top = Symbol('TOPVARS'); global[vars] = global[top] = Object.create(null); function dynvar(name, value) { if (arguments.length < 2) { return global[vars][name]; } else { global[vars][name] = value; return value; } } dynvar.define = function (name, value) { return global[top][name] = value; }; dynvar.bind = function (varsAndValues, cb) { try { global[vars] = Object.create(global[vars]); for (var key in varsAndValues) { if (varsAndValues.hasOwnProperty(key)) { global[vars][key] = varsAndValues[key]; } } return cb(); } finally { global[vars] = Object.getPrototypeOf(global[vars]) || top; } }; exports['default'] = dynvar; module.exports = exports['default'];