Uname:Linux mail.sarafai.ru 6.1.0-43-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.162-1 (2026-02-08) x86_64

403WebShell
403Webshell
Server IP : 82.148.16.210  /  Your IP : 216.73.216.244
Web Server : nginx/1.29.5
System : Linux mail.sarafai.ru 6.1.0-43-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.162-1 (2026-02-08) 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,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /srv/projects/env4/src/dev/frontend3/node_modules/table/node_modules/espurify/lib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /srv/projects/env4/src/dev/frontend3/node_modules/table/node_modules/espurify/lib/clone-ast.js
'use strict';

module.exports = function cloneWithWhitelist (astWhiteList) {
  var whitelist = Object.keys(astWhiteList).reduce(function (props, key) {
    var propNames = astWhiteList[key];
    var prepend = (propNames.indexOf('type') === -1) ? ['type'] : [];
    props[key] = prepend.concat(propNames || []);
    return props;
  }, {});

  function cloneNodeOrObject (clone, obj, seen) {
    var props = obj.type ? whitelist[obj.type] : null;
    if (props) {
      return cloneNode(clone, obj, props, seen);
    } else {
      return cloneObject(clone, obj, seen);
    }
  }

  function cloneArray (clone, ary, seen) {
    var i = ary.length;
    while (i--) {
      if (seen.has(ary[i])) {
        clone[i] = seen.get(ary[i]);
      } else {
        clone[i] = cloneOf(ary[i], seen);
      }
    }
    return clone;
  }

  function cloneNode (clone, node, props, seen) {
    var i, len, key;
    for (i = 0, len = props.length; i < len; i += 1) {
      key = props[i];
      if (node.hasOwnProperty(key)) {
        if (seen.has(node[key])) {
          clone[key] = seen.get(node[key]);
        } else {
          clone[key] = cloneOf(node[key], seen);
        }
      }
    }
    return clone;
  }

  function cloneObject (clone, obj, seen) {
    var props = Object.keys(obj);
    var i, len, key, value;
    for (i = 0, len = props.length; i < len; i += 1) {
      key = props[i];
      value = obj[key];
      if (seen.has(value)) {
        clone[key] = seen.get(value);
      } else {
        clone[key] = cloneOf(value, seen);
      }
    }
    return clone;
  }

  function cloneOf (val, seen) {
    if (typeof val === 'object' && val !== null) {
      if (val instanceof RegExp) {
        return new RegExp(val);
      } else if (Array.isArray(val)) {
        var clone = [];
        seen.set(val, clone);
        return cloneArray(clone, val, seen);
      } else {
        var clone = {};
        seen.set(val, clone);
        return cloneNodeOrObject(clone, val, seen);
      }
    } else {
      return val;
    }
  }

  function cloneRoot (obj) {
    var seen = new Map();
    var clone = {};
    seen.set(obj, clone);
    return cloneNodeOrObject(clone, obj, seen);
  }

  return cloneRoot;
};

Youez - 2016 - github.com/yon3zu
LinuXploit