clone.js 530 B

1234567891011121314151617181920212223
  1. var List = require('./list');
  2. module.exports = function clone(node) {
  3. var result = {};
  4. for (var key in node) {
  5. var value = node[key];
  6. if (value) {
  7. if (Array.isArray(value)) {
  8. value = value.slice(0);
  9. } else if (value instanceof List) {
  10. value = new List(value.map(clone));
  11. } else if (value.constructor === Object) {
  12. value = clone(value);
  13. }
  14. }
  15. result[key] = value;
  16. }
  17. return result;
  18. };