| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | /*! * get-value <https://github.com/jonschlinkert/get-value> * * Copyright (c) 2014-2015, Jon Schlinkert. * Licensed under the MIT License. */module.exports = function(obj, prop, a, b, c) {  if (!isObject(obj) || !prop) {    return obj;  }  prop = toString(prop);  // allowing for multiple properties to be passed as  // a string or array, but much faster (3-4x) than doing  // `[].slice.call(arguments)`  if (a) prop += '.' + toString(a);  if (b) prop += '.' + toString(b);  if (c) prop += '.' + toString(c);  if (prop in obj) {    return obj[prop];  }  var segs = prop.split('.');  var len = segs.length;  var i = -1;  while (obj && (++i < len)) {    var key = segs[i];    while (key[key.length - 1] === '\\') {      key = key.slice(0, -1) + '.' + segs[++i];    }    obj = obj[key];  }  return obj;};function isObject(val) {  return val !== null && (typeof val === 'object' || typeof val === 'function');}function toString(val) {  if (!val) return '';  if (Array.isArray(val)) {    return val.join('.');  }  return val;}
 |