(holder, key)
| 382 | var j; |
| 383 | |
| 384 | function walk(holder, key) { |
| 385 | var k, v, value = holder[key]; |
| 386 | if (value && typeof value === 'object') for (k in value) if (Object.hasOwnProperty.call(value, k)) { |
| 387 | v = walk(value, k); |
| 388 | if (v !== undefined) { |
| 389 | value[k] = v; |
| 390 | } else delete value[k]; |
| 391 | } |
| 392 | return reviver.call(holder, key, value); |
| 393 | } |
| 394 | cx.lastIndex = 0; |
| 395 | if (cx.test(text)) text = text.replace(cx, function (a) { |
| 396 | return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); |