* @param {object} node * @param {string} key * @return {object}
(node, key)
| 13 | * @return {object} |
| 14 | */ |
| 15 | function getScope(node, key) { |
| 16 | if (!key) { |
| 17 | return node; |
| 18 | } |
| 19 | const keys = key.split('.'); |
| 20 | for (let i = 0, n = keys.length; i < n; ++i) { |
| 21 | const k = keys[i]; |
| 22 | node = node[k] || (node[k] = Object.create(null)); |
| 23 | } |
| 24 | return node; |
| 25 | } |
| 26 | |
| 27 | function set(root, scope, values) { |
| 28 | if (typeof scope === 'string') { |